2009-11-13 9 views
6

io sappia otool -tv, ma io preferirei di gran lunga utilizzare la Intel sintassi piuttosto che AT & Ts, soprattutto per seguire facilmente lungo in un libro e non devono guarda oltre migliaia di % e $.Smontare in x86_64 su OSX10.6 (Ma con _Intel_ sintassi)

Apprezzerei anche eventuali suggerimenti su dove trovare il file di configurazione di gdb.

EDIT: Ho dimenticato: sto utilizzando un processore a 64 bit, ma mi chiedevo se sarebbe stato possibile anche smontarlo in un assemblaggio a 32 bit? Non solo, ma il comando list di gdb di OSX funziona in modo diverso rispetto alla versione standard GNU?

Grazie mille!

(Inoltre, se avete qualche idea di dove potrei trovare un po 'disassembler da C -> MIPS, che sarebbe molto divertente da giocare con ma non è necessario.!)

risposta

8

Per rispondere alla seconda domanda, se il codice è stato compilato in un file binario grasso con 64 bit e 32 bit, è possibile utilizzare otool -arch i386 -tv per disassemblare la sezione a 32 bit del file binario; otool -arch x86_64 -tv fornirà la parte a 64 bit (su SnowLeopard, questo è anche il comportamento predefinito se non viene passato alcun flag -arch).

Si noti inoltre che mentre lo otool non supporta la sintassi Intel, gdb (set disassembly-flavor intel) e XCode (Preferenze -> Debug -> Stile disassemblaggio) eseguono.

+0

Grazie! Vado con questo, anche se sono ancora curioso di MIPS :) Peccato per "otool" che non supporta la sintassi di Intel. – Isaac

+0

Se è un ostacolo per te, dovresti presentare un bug che richiede l'aggiunta della funzione (dovrai configurare un account ADC se non ne hai già uno): developer.apple.com/BugReporter –

1

È possibile utilizzare A2I di tradurre da AT & T per la sintassi Intel: http://membres.lycos.fr/placr/a2i.html

+0

Non è proprio quello che sto cercando - le sintassi sono entrambe abbastanza facili da leggere. È più una questione di semplificarmi la vita; usare A2I aggiunge passi che preferirei non prendere, per una piccola ricompensa. Grazie comunque! – Isaac

+1

Questo link è ora rotto. –

1

con Objdump si può smontare con -d -M intel, e apparentemente -m può essere utilizzato per specificare l'architettura.

+0

Capisco che - sfortunatamente objdump non funziona su/non viene fornito con OSX. – Isaac

+1

Credo che si possa ottenere objdump su OSX se si installano i binutils di gdb usando macports o homebrew. L'ho avuto a un certo punto, ma ho preferito utilizzare otool poiché è in realtà uno strumento OSX. Sono d'accordo però, vorrei la sintassi Intel in otool stesso. – Jarsen

+0

Se si installa binutils usando homebrew, il nome dell'eseguibile è gobjdump. È un po 'instabile e si blocca dopo aver generato l'output ma ... è meglio di niente! –

0

Per GDB, nel file .gdbinit, aggiungere:

set smontaggio-sapore intel

allora sarà la sintassi predefinita per gdb.

Problemi correlati