Il volontario che ha aperto la discussione sul codice (e sui tools) di rosetta ha chiarito cosa ha usato:
The tools needed on Linux are available to all Linux users. Just start up a bunch of R@H tasks, use "perf" to monitor all the system CPU's for your time period and use "perf" to display the results. I used "objdump" to disassemble the binary and find the "perf" program counter address in the objdump output. If you have SOURCE, objdump will add the source code to the dump.
The equally good stuff on Windows seems to be mostly retail stuff.
Qui ci vuole Saba per decifare il testo
in pratica ha "aperto" l'eseguibile in rosetta con objdump (un tool fornito nelle binutils di tutte le distribuzioni,è un pacchetto base), in genere dovrebbe rendere il codice disponibile in assembly (o fortran ??
)...
/usr/bin/eu-objdump
/usr/bin/llvm-objdump
/usr/bin/objdump
/usr/bin/objdump86
/usr/bin/x86_64-pc-linux-gnu-objdump
/usr/share/binutils-data/x86_64-pc-linux-gnu/2.24/man/man1/objdump.1.bz2
/usr/src/linux-3.18.12-gentoo/arch/x86/tools/chkobjdump.awk
/usr/x86_64-pc-linux-gnu/bin/objdump
/usr/x86_64-pc-linux-gnu/binutils-bin/2.24/objdump
[esempio]
objdump -D -S -f minirosetta_graphics_3.57_x86_64-pc-linux-gnu
minirosetta_graphics_3.57_x86_64-pc-linux-gnu: formato del file elf32-i386
architettura: i386, flag 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
indirizzo di partenza 0x08048110
Disassemblamento della sezione .note.ABI-tag:
080480d4 <.note.ABI-tag>:
80480d4: 04 00 add $0x0,%al
80480d6: 00 00 add %al,(%eax)
80480d8: 10 00 adc %al,(%eax)
80480da: 00 00 add %al,(%eax)
80480dc: 01 00 add %eax,(%eax)
80480de: 00 00 add %al,(%eax)
80480e0: 47 inc %edi
80480e1: 4e dec %esi
80480e2: 55 push %ebp
80480e3: 00 00 add %al,(%eax)
80480e5: 00 00 add %al,(%eax)
80480e7: 00 02 add %al,(%edx)
80480e9: 00 00 add %al,(%eax)
80480eb: 00 06 add %al,(%esi)
80480ed: 00 00 add %al,(%eax)
80480ef: 00 09 add %cl,(%ecx)
80480f1: 00 00 add %al,(%eax)
...
Disassemblamento della sezione .init:
080480f4 <_init>:
80480f4: 55 push %ebp
80480f5: 89 e5 mov %esp,%ebp
80480f7: 83 ec 08 sub $0x8,%esp
80480fa: e8 35 00 00 00 call 8048134 <call_gmon_start>
80480ff: e8 cc 00 00 00 call 80481d0 <frame_dummy>
8048104: e8 f7 db 2c 02 call a315d00 <__do_global_ctors_aux>
8048109: c9 leave
804810a: c3 ret
Disassemblamento della sezione .text:
08048110 <_start>:
8048110: 31 ed xor %ebp,%ebp
8048112: 5e pop %esi
8048113: 89 e1 mov %esp,%ecx
8048115: 83 e4 f0 and $0xfffffff0,%esp
8048118: 50 push %eax
8048119: 54 push %esp
804811a: 52 push %edx
804811b: 68 20 08 2a 0a push $0xa2a0820
8048120: 68 60 08 2a 0a push $0xa2a0860
8048125: 51 push %ecx
8048126: 56 push %esi
[...]
o
cat log | head -n 50
minirosetta_graphics_3.57_x86_64-pc-linux-gnu: formato del file elf32-i386
architettura: i386, flag 0x00000112:
EXEC_P, HAS_SYMS, D_PAGED
indirizzo di partenza 0x08048110
Contenuto della sezione .note.ABI-tag:
80480d4 04000000 10000000 01000000 474e5500 ............GNU.
80480e4 00000000 02000000 06000000 09000000 ................
Contenuto della sezione .init:
80480f4 5589e583 ec08e835 000000e8 cc000000 U......5........
8048104 e8f7db2c 02c9c3 ...,...
Contenuto della sezione .text:
8048110 31ed5e89 e183e4f0 50545268 20082a0a 1.^.....PTRh .*.
8048120 6860082a 0a515668 506a0508 e87f7f25 h`.*.QVhPj.....%
8048130 02f49090 5589e553 83ec04e8 00000000 ....U..S........
8048140 5b81c328 2a7f028b 93a0ffff ff85d274 [..(*..........t
8048150 05e8aa7e fbf7585b c9c39090 90909090 ...~..X[........
8048160 5589e553 83ec0480 3d046584 0a007554 U..S....=.e...uT
8048170 b8809d83 0a2d789d 830ac1f8 028d58ff .....-x.......X.
8048180 a1006584 0a39c376 1f8db426 00000000 ..e..9.v...&....
8048190 83c001a3 0065840a ff148578 9d830aa1 .....e.....x....
80481a0 0065840a 39c377e8 b860f129 0a85c074 .e..9.w..`.)...t
80481b0 0cc70424 dc0d4f0a e8a36f25 02c60504 ...$..O...o%....
80481c0 65840a01 83c4045b 5dc38db6 00000000 e......[].......
80481d0 55b8c0f3 290a89e5 83ec18e8 00000000 U...)...........
80481e0 5a81c288 297f0285 c0742089 54240cc7 Z...)....t .T$..
80481f0 44240800 000000c7 44240408 65840ac7 D$......D$..e...
8048200 0424dc0d 4f0ae8b5 712502a1 849d830a .$..O...q%......
8048210 85c07412 b8000000 0085c074 09c70424 ..t........t...$
8048220 849d830a ffd0c9c3 90909090 90909090 ................
8048230 55b90c00 000089e5 538b5d08 83c350b8 U.......S.]...P.
8048240 37010000 cd805b5d c38db426 00000000 7.....[]...&....
8048250 5589e583 ec14895d f48b4d0c 8975f889 U......]..M..u..
8048260 7dfc65a1 4c000000 89c2c1fa 1f31d029 }.e.L........1.)
8048270 d0837d08 21740d8b 5df48b75 f88b7dfc ..}.!t..]..u..}.
8048280 89ec5dc3 39410c75 ee837908 fa75e8a1 ..].9A.u..y..u..
8048290 fc1d8f0a 8b50088b 70048b38 8955ec8b .....P..p..8.U..
80482a0 500c89f3 8b4dec89 f8cd8065 8b1d0800 P....M.....e....
80482b0 0000658b 0d640000 0089ca89 c883e2bf ..e..d..........
80482c0 f0650fb1 15640000 0039c175 e5c783f4 .e...d...9.u....
80482d0 01000001 000000ba 01000000 658b0d20 ............e..
80482e0 000000be f0000000 81c3f401 000083c9 ................
80482f0 0189f0cd 808b0dfc 1d8f0ab8 ffffffff ................
8048300 f00fc141 108945f0 8b45f083 e8010f85 ...A..E..E......
8048310 63ffffff 8d591065 8b0d2000 000083c9 c....Y.e.. .....
8048320 0189f0cd 80e94dff ffff8db6 00000000 ......M.........
8048330 5589e58b 4d0c5365 a14c0000 0089c2c1 U...M.Se.L......
8048340 fa1f31d0 29d0837d 08207404 5b5dc390 ..1.)..}. t.[]..
8048350 39410c75 f7837908 fa75f165 8b1d6400 9A.u..y..u.e..d.
PERF non so che programma sia ... ma ho trovato
qusto pdf
, se 25PThz vuole leggerlo prima di andare a letto... magari domani mattina ci fa un sunto