2009-12-16 34 views
7

Tengo un conjunto de puntos de corte básicos definidos en un fn setup definido por el usuario en mi .gdbinit. Entonces, cada vez que inicio gdb, tengo que ejecutar ese fn. para establecer todos mis brkpoints, antes de comenzar la depuración. ¿Puedo configurar mi .gdbinit para que cada vez que se inicie, primero ejecute mi fn setup definido por el usuario?¿Cómo hacer que gdb ejecute una función definida por el usuario (definida en .gdbinit) cada vez que se inicia?

Respuesta

9

a llamarlo por el nombre de la función:

Mi .gdbinit:

define setup  
    echo Foobar\n 
end 

setup #This is the function call 

Y cuando lo ejecuto:

$ gdb 
GNU gdb Fedora (6.8-37.el5) 
Copyright (C) 2008 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. Type "show copying" 
and "show warranty" for details. 
This GDB was configured as "x86_64-redhat-linux-gnu". 
Foobar 
(gdb) 
+0

No trabajo para mí - da este error: .No la tabla de símbolos está cargada. Use el comando "archivo". No se ha cargado ninguna tabla de símbolos. Use el comando "archivo". No se ha cargado ninguna tabla de símbolos. Use el comando "archivo". No se ha cargado ninguna tabla de símbolos. Use el comando "archivo". /home/sbhowmick/.gdbinit:83: Error en el archivo de comando de origen: No se ha especificado ningún archivo ejecutable. Utilice el comando "file" o "exec-file". Usando la biblioteca libthread_db del host "/lib/tls/libthread_db.so.1". estoy usando GNU GDB Red Hat Linux (6.3.0.0-1.138.el3rh) – TCSGrad

+0

Mi archivo .gdbinit se ve así: definir la configuración br br na1 na2 final definen some_other_fn ... end setup – TCSGrad

+0

Esto se debe a que no tiene cargado el archivo binario, si está definiendo puntos de corte, el binario ya debe estar cargado al iniciar GDB, por ejemplo debe definir "archivo a.out" o smtg así en su .gdbinit antes de establecer los puntos de interrupción o ejecutar "gdb a.out" más o menos. – Kimvais

Cuestiones relacionadas