tutorial subaru online how commands gdb

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:

  1. guarde el script como .gdbinit en el working directory .
  2. 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 .