* reverse-continue('rc')--Continue program being debugged but run it in reverse
* reverse-finish --Execute backward until just before the selected stack frame is called
* reverse-next ('rn')--Step program backward, proceeding through subroutine calls.* reverse-nexti ('rni')--Step backward one instruction, but proceed through called subroutines.* reverse-step ('rs')--Step program backward until it reaches the beginning of a previous source line
* reverse-stepi --Step backward exactly one instruction
*set exec-direction (forward/reverse)--Set direction of execution.
Usando la -command=<file with gdb commands>opción mientras activa gdb. Igual que -x <command file>. Este archivo de comandos puede contener comandos de gdb como puntos de interrupción, opciones, etc. Útil en caso de que un ejecutable particular deba someterse a sucesivas ejecuciones de depuración utilizando gdb.
También puede usar la -iexopción para agregar comandos individuales en la línea de comando gdb.
doug65536
5
scripting gdb es un buen truco, aparte de eso, me gusta activar / desactivar el bloqueo del planificador para evitar que se ejecuten otros subprocesos cuando estás en uno.
¿Cómo haces que esto sea el predeterminado? Lo intenté .gdbinit pero gdb imprime /home/omry/.gdbinit:1: Error en el archivo de comando de origen: Target 'None' no puede admitir este comando.
Omry Yadan
4
Usando .gdbinit (archivo de inicio donde puede escribir macros y llamar desde gdb). Coloque .gdbinit en su directorio de inicio para que se recoja cada vez que se carga gdb
hilos de información para enumerar todos los hilos activos, y f (#) -> # número de hilo al que desea cambiar
a veces uso gdb para convertir de hexadecimal a decimal o binario, es muy útil en lugar de abrir una calculadora
En lugar de iniciar gdb con la opción -tui para ver un proceso secundario que contiene una pantalla que resalta dónde está la línea de código de ejecución en su programa, entre y salga de esta función con Cx o y Cx a. Esto es útil si está utilizando la función y qué no usar temporalmente para poder usar la flecha hacia arriba para obtener un comando anterior.
Respuestas:
fuente
info locals
- Ver todas las variables locales; lista - ver fuente; rbreak - pausa en la función que coincide con la expresión regular.set print object on
para elementos polimórficos yset print elements 0
son dos comandos que uso muy a menudo. Bastante útilt a a bt
(significadothread apply all backtrace
). Podría usarse con (casi) todos los demás comandos. Especialmente útil conbt full
.Inicie gdb con una interfaz de usuario textual
fuente
A partir de gdb 7.0, hay una depuración reversible , por lo que sus nuevos comandos favoritos son:
fuente
En lugar de iniciar GDB con el parámetro "-tui", también puede cambiar al modo de texto después de un tiempo usando "wh".
fuente
Ctrl-a a
? ¿Es una broma? Parece más comotmux
/screen
comando. Y no funciona para mi. Debe ser uno de los que por docs :C-x C-a
,C-x a
,C-x A
.C-x a
. También puede cambiar las vistas conC-x 1
yC-x 2
cuando está en modo tui para ver el ensamblaje también (si es necesario).thread apply all bt
othread apply all print $pc
: Para descubrir rápidamente lo que están haciendo todos los hilos.fuente
Por ejemplo, las macros definidas en stl-views.gdb
fuente
Usando la
-command=<file with gdb commands>
opción mientras activa gdb. Igual que-x <command file>
. Este archivo de comandos puede contener comandos de gdb como puntos de interrupción, opciones, etc. Útil en caso de que un ejecutable particular deba someterse a sucesivas ejecuciones de depuración utilizando gdb.fuente
-iex
opción para agregar comandos individuales en la línea de comando gdb.scripting gdb es un buen truco, aparte de eso, me gusta activar / desactivar el bloqueo del planificador para evitar que se ejecuten otros subprocesos cuando estás en uno.
fuente
set scheduler-locking on
dentro de gdbhilos de información para enumerar todos los hilos activos, y f (#) -> # número de hilo al que desea cambiar
a veces uso gdb para convertir de hexadecimal a decimal o binario, es muy útil en lugar de abrir una calculadora
fuente
En lugar de iniciar gdb con la opción -tui para ver un proceso secundario que contiene una pantalla que resalta dónde está la línea de código de ejecución en su programa, entre y salga de esta función con Cx o y Cx a. Esto es útil si está utilizando la función y qué no usar temporalmente para poder usar la flecha hacia arriba para obtener un comando anterior.
fuente
focus cmd
para que funcionen las flechas arriba / abajo. Cambias de nuevo usandofocus src
.Esto puede ser útil, estoy seguro de que podría mejorarse, ayuda bienvenida:
fuente
Para depurar STL, agregue contenido a .gdbinit, siga estas instrucciones:
http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF
fuente