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
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.
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.
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 dis
immettere.
Per tornare alla sorgente (se disponibile), ripetere questa operazione, ad eccezione del tipo :set nodis
.
- 1. Codice assembly in C++
- 2. come rendere lo spazio all'interno di span show
- 3. Analizzare codice assembly
- 4. Estensione file codice assembly
- 5. Come incorporare il codice assembly in php?
- 6. Ridondanza codice assembly in codice C ottimizzato
- 7. Decodifica e comprensione codice assembly
- 8. codice assembly della funzione c
- 9. Codice assembly per sin (x)
- 10. Come far scorrere la finestra gdb all'interno di cgdb?
- 11. Come funziona [UIAlertView show]?
- 12. Come rendere questo codice più ASCIUTTO?
- 13. Come rendere il codice di eccezione DRY?
- 14. Come rendere Android ProgressBar determinato nel codice?
- 15. Come rendere veloce il mio codice
- 16. Ricerca di codice C mancante, dato codice assembly?
- 17. Converti codice assembly inline in C++
- 18. GCC C++ e codice assembly inline?
- 19. Visualizza sia il codice assembly che C
- 20. esegue un codice assembly su ubuntu
- 21. analisi del codice statico per linguaggio assembly
- 22. Perché questo codice assembly è più veloce?
- 23. Come posso vedere albero di analisi, codice intermedio, codice di ottimizzazione e codice assembly durante COMPILATION?
- 24. Come generare codice assembly con clang nella sintassi Intel?
- 25. Come il linker risolve il simbolo nel codice assembly
- 26. F # Come compilare una citazione di codice per un assembly
- 27. Come si compila il codice assembly JVM in bytecode?
- 28. plugin maven-assembly - come creare assembly nidificati
- 29. Come rendere questo pezzo di codice Haskell più conciso?
- 30. Show datediff come secondi, millisecondi
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
C'è un modo per farlo ora con ': set dis' (dalla versione 0.7.0). Vedi la mia risposta. –