subaru - how to use gdb
gdb-¿Cómo ejecutar automáticamente el ejecutable? (5)
Me gustaría que gdb
ejecute inmediatamente el ejecutable, como si hubiera tecleado "ejecutar" (motivación: no me gusta escribir "ejecutar").
Una forma es conectar el comando a gdb
siguiente manera:
$ echo run | gdb myApp
Pero el problema con este enfoque es que pierdes la interactividad con gdb
, por ejemplo. si un punto de interrupción se dispara o myApp
falla, gdb
cierra. Este método se discute here .
Mirando las opciones en --help
, no veo una manera de hacer esto, pero tal vez me falta algo.
Yo usaría un script gdb:
gdb -x your-script
donde tu script contiene algo como:
file a.out
b main
r
luego tienes el prompt gdb interactivo normal
EDITAR :
aquí hay una optimización para los verdaderamente perezosos:
- guarde el script como
.gdbinit
en elworking directory
. Luego simplemente ejecuta gdb como
gdb
... y gdb carga y ejecuta automáticamente el contenido de .gdbinit.
gdb -x <(echo run) --args $program $args
comienzo es otra buena opción:
gdb -ex start ./a.out
Es como ejecutar, pero también establece un punto de interrupción temporal en main
y se detiene allí.
Este punto de interrupción temporal se desactiva una vez que se golpea.
(echo r ; cat) | gdb a.out
El gato te permite seguir escribiendo después de que gdb se rompe.
gdb -ex run ./a.out
Si necesita pasar argumentos a a.out
:
gdb -ex run --args ./a.out arg1 arg2 ...
EDITAR: dice que esto no funciona en Mac OSX.
El -ex
ha estado disponible desde GDB-6.4
(lanzado en 2005), pero OSX usa el tenedor de Apple de GDB, y el último XCode para Leopard contiene GDB 6.3.50-20050815 (Apple version gdb-967)
, por lo que está fuera De suerte.
La versión actual de GDB-7.0.1
es una posible solución. Solo asegúrate de leer this .