comandos - Puntos de corte GDB
clusvcadm (6)
Tengo una lista de puntos de interrupción que quiero agregar cada vez que depuro un programa en particular. ¿Hay alguna manera de que pueda poner toda esta información de punto de interrupción en un archivo y usarla al comienzo de cada sesión de depuración? En otras palabras, ¿puedo proporcionar un archivo de script con información de punto de corte a GDB antes de dar el comando ''ejecutar'' ?
Gracias de antemano, Sachin
Además de usar un archivo externo, también puede mantener abierto el gdb: si el binario en gdb cambia, volverá a cargar el binario y las bibliotecas sin perder sus puntos de interrupción la próxima vez que ejecute.
Desde hombre gdb (1) :
-x file
Execute GDB commands from file file.
Luego puede poner sus puntos de interrupción en un archivo:
break [file:]function
break [file:]function
...
O qué tal?
gdb --command = commands.gdb ./a.out
donde commands.gdb es un archivo de texto con sus puntos de corte.
/ Johan
Actualización: --command es probablemente lo mismo que -x
Puede poner todos los comandos que desee en un archivo .gdbinit
que viva en el mismo directorio que el ejecutable que está depurando.
Algo como:
b somefile.c:128
b otherfile.c:33
Debería funcionar bien
Editar: Sí, el argumento de línea de comando -x
le permitirá ejecutar archivos arbitrarios al inicio de GDB, pero mantener un archivo .gdbinit
para cada proyecto significa que el archivo se ejecuta automáticamente (sin la necesidad de especificar un nombre de archivo). Además, puede agregar fácilmente el archivo .gdbinit
específico del proyecto a su control de origen, lo que significa que todos los miembros de su equipo pueden utilizar las mismas funciones de depuración.
La documentación de GDB afirma que se puede usar un comando "guardar puntos de interrupción" y "fuente": http://sourceware.org/gdb/current/onlinedocs/gdb/Save-Breakpoints.html#Save-Breakpoints . Sin embargo, esto no funciona en mi gdb (7.1-ubuntu).
El comando guardar puntos de interrupción es nuevo a partir de gdb 7.2. Después de guardar los puntos de interrupción en un archivo, puede leerlos en una sesión posterior de gdb utilizando el comando de origen y luego la próxima vez que ejecute gdb puede usar la opción -x <filename>
.
save breakpoints <filename>
Save all current breakpoint definitions to a file suitable for use
in a later debugging session. To read the saved breakpoint
definitions, use the `source'' command.