2009-02-01 13 views
28

Tengo una lista de puntos de interrupción que quiero agregar cada vez que depuro un programa en particular. ¿Hay alguna forma 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'.Puntos de corte de GDB

Gracias de antemano, Sachin

Respuesta

20

Usted puede poner todos los comandos que desee en un archivo .gdbinit que vive en el mismo directorio que el ejecutable que se está depurando.

Algo así como:

b somefile.c:128 
b otherfile.c:33 

debería funcionar bien.

Editar: Sí, el argumento de la línea -x comando le permitirá ejecutar archivos en el arranque del BGF, pero manteniendo 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 al control de origen, lo que significa que todos los miembros de su equipo pueden utilizar las mismas funciones de depuración.

28

De GDB hombre (1):

-x file 
      Execute GDB commands from file file. 

A continuación, podría poner sus puntos de interrupción en un archivo:

break [file:]function 
break [file:]function 
... 
12

Además de usar un archivo externo, también puede simplemente mantener el BGF abierto : Si el binario en gdb cambia, volverá a cargar el binario y las bibliotecas sin perder los puntos de interrupción la próxima vez que ejecute.

2

O qué tal:

GDB --command = commands.gdb ./a.out

donde commands.gdb es un archivo de texto con los puntos de interrupción.

/Johan

Actualización: --command es probablemente el mismo que -x

10

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. 
Cuestiones relacionadas