¿Cómo configuro gdb en la ventana para que no permita que un programa con falla de aserción termine? Tengo la intención de verificar el seguimiento de la pila y las variables en el programa.Depuración del programa MinGW con gdb en Windows, no termina en la falla de afirmación
Por ejemplo, la ejecución de este programa test.cpp compilado con MinGW 'g++ -g test.cpp -o test
' en GDB:
#include <cassert>
int main(int argc, char ** argv) { assert(1==2); return 0; }
Da:
$ gdb test.exe
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-mingw32"...
(gdb) r
Starting program: f:\code/test.exe
[New thread 4616.0x1200]
Error: dll starting at 0x77030000 not found.
Error: dll starting at 0x75f80000 not found.
Error: dll starting at 0x77030000 not found.
Error: dll starting at 0x76f30000 not found.
Assertion failed: 1==2, file test.cpp, line 2
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
Program exited with code 03.
(gdb)
Me gustaría ser capaz de detener el programa de terminación de inmediato, como lo hace el depurador de Visual Studio y gdb en Linux. Hice una búsqueda y encontré algunas cosas sobre las señales de captura, pero parece que no puedo encontrar una buena publicación sobre cómo configurar gdb para hacer esto.
cómo puedo evitar que pregunte sobre: La función "salir" no está definida en los símbolos cargados. ¿Desea que el punto de interrupción esté pendiente en la futura carga de la biblioteca compartida? (y o [n]) y Punto de interrupción 1 (salida) pendiente. – devil