Como entrar, pisar e sair com o GDB?

22

Eu digitei help enquanto estava no GDB, mas não encontrei nada sobre step-into, step-over e step-out. Eu coloquei um ponto de interrupção em um programa de montagem em _start ( break _start ). Depois eu digitei next e terminou a depuração. Eu acho que foi porque ele terminou _start e não entrou como eu queria.

Alguém que possa ajudar?

    
por Pichi Wuana 24.07.2016 / 19:12

1 resposta

20

help running fornece algumas dicas:

Existem step e next instuctions (e também nexti e stepi ).

(gdb) help next
Step program, proceeding through subroutine calls.
Usage: next [N]
Unlike "step", if the current source line calls a subroutine,
this command does not enter the subroutine, but instead steps over
the call, in effect treating it as a single source line.

Assim, podemos ver que step etapas em sub-rotinas, mas next irá passar por sub-rotinas .

O step e stepi (e o next e nexti ) são diferenciados por incrementos de "linha" ou "instrução".

step -- Step program until it reaches a different source line
stepi -- Step one instruction exactly

Relacionado é finish :

(gdb) help finish
Execute until selected stack frame returns.
Usage: finish
Upon return, the value returned is printed and put in the value history.

Informações muito mais úteis estão no link

    
por 24.07.2016 / 20:01