2012-02-04 8 views
6

Non riesco a trovare un modo per cgdb per disassemblare un binario e mostrare il codice assembly con l'istruzione corrente nella finestra del codice. È possibile e quale comando dovrei usare? Sto usando Mac OS X e ho ottenuto cgdb dal repository homebrew.Come rendere cgdb show codice assembly?

risposta

4

display/i $pc mostra lo smontaggio sempre per l'istruzione corrente, nella finestra della console.

Per visualizzare lo smontaggio per ulteriori istruzioni, prefisso i con il numero di istruzioni.

Per esempio,

display/5i $pc 

mostra lo smontaggio sempre per i prossimi 5 istruzioni.

+1

Questo tipo sfida lo scopo di cgdb. Perché dovremmo usarlo al posto del semplice gdb per eseguire il debug delle applicazioni di sourcel se questa funzionalità viene raggiunta solo tramite un comando gdb? – Ruslan

+0

C'è un modo per farlo ora con ': set dis' (dalla versione 0.7.0). Vedi la mia risposta. –

0

Sto lavorando su MacOS per disinnescare una bomba binario e trovare "gdb -tui" sarà utile. Di quanto ho trovato "cgdb" può rendere il codice colorato. Ma quello che vogliamo vedere è mostrare il codice smontato sulla finestra del codice, la risposta sopra mostra solo il codice riga per riga o solo le righe immutabili.

Purtroppo, ho trovato un post che diceva che "il cgdb non supporta la visualizzazione dell'assieme (ancora)." https://groups.google.com/forum/#!topic/cgdb-users/E-jZCJiBAQQ

Sorry guys, cgdb does not support assembly display (yet). It's a 
frequently requested feature, and when we get a little more time to 
work on cgdb we will probably add this. 
Starting cgdb with the -tui option is a bad idea -- the TUI (text user 
interface) is an alternative curses interface to gdb, not a part of 
cgdb. It will not play nice with cgdb. 
Mike 
-- 
Mike Mueller 

Beh, è ​​12/11/15, ma sembra ancora non riusciva a mostrare il codice assembly sulla finestra del codice come gdb in modalità tui.

2

Un recente aggiornamento (febbraio 2017) a cgdb rende possibile farlo. Avrai bisogno di cgdb versione 0.7.0 o più recente. (Al momento della stesura questa è l'ultima versione). Potrebbe essere necessario compilare questo da te stesso dato come è recente.

Maggiori dettagli su come aggiungere il supporto di smontaggio possono essere trovate qui: https://github.com/cgdb/cgdb/issues/44

Per visualizzare lo smontaggio in cgdb colpito esc e tipo :set disimmettere.

Per tornare alla sorgente (se disponibile), ripetere questa operazione, ad eccezione del tipo :set nodis.

Problemi correlati