2009-02-26 18 views
28

C'è un modo per passare all'assemblaggio durante il debug di un programma C o C++ in gdb? (Dato che sono disponibili tutti i file di origine e i relativi file di assemblaggio)Passare all'assemblaggio in gdb

risposta

20

C'è un modo per smontare una funzione o una determinata sezione di codice, è questo quello che cerchi?

Il comando per farlo sarebbe disassemble <function name> o una posizione di memoria.

È questo a cui ti riferisci?

(gdb) help disassemble 
Disassemble a specified section of memory. 
Default is the function surrounding the pc of the selected frame. 
With a single argument, the function surrounding that address is dumped. 
Two arguments are taken as a range of memory to dump. 
4

L'utilizzo del comando disas probabilmente farà ciò che desideri.

Secondo la guida interna, il comando disas esegue le seguenti operazioni:

Disassemble a specified section of memory. 
Default is the function surrounding the pc of the selected frame. 
With a single argument, the function surrounding that address is dumped. 
Two arguments are taken as a range of memory to dump. 
10

Nella nuova versione gdb 7.0, il comando disassemble può assumere un nuovo argomento /m che rende emettono fonte mescolato e smontaggio.

55

È possibile passare al layout di asm in gdb:

(gdb) layout asm 

Vedi here per ulteriori informazioni.