Pregunta

¿Puedes publicar tus comandos más complicados y útiles mientras ejecutas un depurador como gdb o dbx?

¿Fue útil?

Solución

  1. rastreo completo:Rastreo completo con variables locales.
  2. arriba, abajo, marco:Moverse a través de marcos
  3. mirar:Suspender el proceso cuando se cumpla una determinada condición.
  4. Establecer impresión bonita en:Imprime el código fuente C con un bonito formato.
  5. configurar el inicio de sesión:Registre la sesión de depuración para mostrársela a otros en busca de soporte
  6. establecer matriz de impresión en:Bonita impresión de matriz
  7. finalizar:Continuar hasta el final de la función.
  8. permitir y desactivar:Activar/desactivar puntos de interrupción
  9. romper:Romper una vez y luego eliminar el punto de interrupción
  10. dónde:Número de línea que se está ejecutando actualmente
  11. información local:Ver todas las variables locales
  12. argumentos de información:Ver todos los argumentos de la función
  13. lista:ver fuente
  14. romper:interrumpir la función que coincide con la expresión regular

Otros consejos

GDB de inicio con una interfaz de usuario textual

gdb -tui

A partir de GDB 7.0, hay reversible depuración , por lo que su nuevo favorito los comandos 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 lanzar con el BGF "-tui" param también se puede cambiar al modo de texto después de un tiempo usando escribiendo "WH".

thread apply all bt o thread apply all print $pc:. Para encontrar rápidamente lo que están haciendo todas las discusiones

Por ejemplo las macros definidas en stl-views.gdb

El uso de la opción -command=<file with gdb commands> mientras se dispara hasta el BGF. Igual que -x <command file>. Este archivo de comandos puede contener comandos de GDB como puntos de ruptura, opciones, etc. útil en caso de un ejecutable en particular tiene que ser puesto a través de depuración sucesivas corridas usando GDB.

GDB scripting es un buen truco, aparte de eso me gusta planificador conjunto de bloqueo de encendido / apagado para impedir la ejecución de otros hilos cuando estás entrar en uno.

En lugar de comenzar GDB con la opción -tui ver un proceso secundario que contiene una pantalla que pone de relieve en la línea de la ejecución de código está en su programa, saltar y salir de esta función con C-x o y C-x a. Esto es útil si usted está utilizando la función y lo que temporalmente no utilizarlo para que pueda utilizar la flecha hacia arriba para obtener un comando anterior.

  • Con .gdbinit (puesta en marcha de archivos donde se puede escribir macros y llamar desde BGF). .Gdbinit lugar en su directorio personal para que se recoge cada vez que se carga gdb
  • Hilos Información para enumerar todos los hilos activos, y f (#) -> número # hilo que desea cambiar a

  • en algún momento yo uso GDB convertir de hexadecimal a decimal o binario, es muy práctico en lugar de abrir una calculadora

    • p / d 0x10 -> da equivalente decimal de 0x10
    • p / t 0x10 -> equivalente binario de 0x10
    • p / x 256 -> hex equivalente de 256

Esto puede ser útil, estoy seguro de que podría mejorarse sin embargo, ayudar bienvenidos:

define mallocinfo
  set $__f = fopen("/dev/tty", "w")
  call malloc_info(0, $__f)
  call fclose($__f)

Para STL depurar, agregar contenido a .gdbinit, siga estas instrucciones:

http://www.yolinux.com/TUTORIALS/GDB-Commands. html # STLDEREF

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top