Отладка программы MinGW с gdb в Windows, не завершение в утверждают отказ

Как я настраиваю gdb на окне так, чтобы это не позволяло программу с отказом утверждения завершиться? Я намереваюсь проверить отслеживание стека и переменные в программе.

Например, запуская эту test.cpp программу, скомпилированную с MinGW'g++ -g test.cpp -o test'в gdb:

#include <cassert>
int main(int  argc, char ** argv) { assert(1==2); return 0; }

Дает:

$ 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)

Я хотел бы смочь мешать программе сразу завершиться, как то, как отладчик Visual Studio и gdb на Linux делают это. Я сделал поиск и нашел некоторый материал при захвате сигналов, но я, может казаться, не нахожу хорошее сообщение о том, как настроить gdb, чтобы сделать это.

8
задан devil 24 April 2010 в 17:27
поделиться

2 ответа

Просто установите точку останова при выходе:

(gdb) b exit

6
ответ дан 5 December 2019 в 12:09
поделиться

Выяснилось, что точку останова можно поместить в файл .gdbinit со строками:

set breakpoint pending on
b exit

Это устраняет необходимость вводить да для окон.

7
ответ дан 5 December 2019 в 12:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: