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
.gdbiniten 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 .