Respuestas:
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 y set print elements 0
son dos comandos que uso muy a menudo. Bastante útil
t a a bt
(significado thread apply all backtrace
). Podría usarse con (casi) todos los demás comandos. Especialmente útil con bt full
.
A partir de gdb 7.0, hay una depuración reversible , por lo que sus nuevos comandos favoritos son:
* 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.
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".
C-x a
. También puede cambiar las vistas con C-x 1
y C-x 2
cuando está en modo tui para ver el ensamblaje también (si es necesario).
Por ejemplo, las macros definidas en stl-views.gdb
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.
-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.
set scheduler-locking on
dentro de 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.
focus cmd
para que funcionen las flechas arriba / abajo. Cambias de nuevo usando focus src
.
Para depurar STL, agregue contenido a .gdbinit, siga estas instrucciones: