2009-02-26 4 views
28

Est-il possible de passer à l'assembly lors du débogage d'un programme C ou C++ dans gdb? (Etant donné que tous les fichiers source et leurs fichiers d'assemblage correspondants sont disponibles)Passage à l'assembly dans gdb

Répondre

20

Il existe un moyen de désassembler une fonction ou une certaine section de code, c'est ce que vous recherchez?

La commande pour le faire serait disassemble <function name> ou un emplacement de mémoire.

Est-ce ce que vous voulez dire?

(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'utilisation de la commande disas fera probablement ce que vous voulez.

Selon l'aide interne, la commande CEIQ effectue les opérations suivantes:

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

Dans la nouvelle version de gdb 7.0, la commande disassemble peut prendre un nouvel argument /m qui le rend émette la source mixte et le démontage.

55

Vous pouvez passer à la mise en page asm dans gdb:

(gdb) layout asm 

Voir here pour plus d'informations.