tratamiento - ¿Cómo detengo la continuación en GDB?
rinitis alérgica descongestivo (3)
Aquí hay un breve tutorial de GDB , y aquí hay un manual completo de GDB .
El punto de depuración es inspeccionar partes interesantes / sospechosas del programa. Breakpoints de interrupción le permiten detener la ejecución en alguna ubicación de origen, y los watchpoints permiten detenerse cuando cambian datos interesantes.
Ejemplos simples:
(gdb) break my_function
(gdb) cont
Esto insertará un punto de interrupción al comienzo de my_function
, de modo que cuando la ejecución del programa ingrese a la función, el programa se suspenderá y usted recibirá un aviso de GDB y podrá inspeccionar el estado del programa . O puede step por el código.
(gdb) watch my_var
(gdb) cont
Igual, pero ahora el programa se detendrá en cualquier ubicación que modifique el valor de my_var
.
Enchufe descarado: aquí hay un enlace a mi presentación de GDB en NYC BSD User Group . Espero que esto ayude.
Estoy usando GDB por primera vez. Corro
$ gdb
entonces estoy corriendo
attach <mypid>
luego veo que mi proceso está atascado (lo que probablemente está bien). Ahora quiero que siga corriendo, así que corro.
continue
y mi proceso continúa en ejecución, pero desde aquí me quedo atascado si quiero volver a ver el seguimiento de mi pila actual, etc. No podía dejar de continuar ... Intenté Ctrl - D, etc. pero nada me funcionó ... (Era solo una conjetura).
Control + C en el proceso gdb debería volver al indicador de comandos.
Debes interrumpir el proceso que está adjunto por gdb. No interrumpas gdb en sí. Interrumpa el proceso por ctrl-c en el terminal en el que se inició el proceso o envíe el proceso SIGINT por kill -2 procid. Con procid se adjunta el id del proceso.