Сбой программы в отладчике до того, как что-то случится - PullRequest
2 голосов
/ 12 мая 2010

Я создаю приложение для Windows XP, используя цепочку инструментов MinGW, и оно иногда неожиданно падает. Итак, я пытаюсь использовать отладчик (Gdb), но программа завершает работу с кодом 03, прежде чем что-либо произойдет. Фактически, все, что я вижу из GDB:

[Новая тема 3184.0x7b8]
[Новая тема 3184.0xef8]

Программа вышла с кодом 03.

Я подозреваю, что существует некое динамическое связывание зависимости (это Qt, VTK и ITK, все построенные с использованием MinGW). Однако этого не происходит, когда я просто запускаю программу нормально. Или, если это произойдет, оно будет прерывистым и хорошо после запуска и запуска программы. ПРИМЕЧАНИЕ: я также использую Cmake для кросс-компиляции.

Что мне делать? Что я могу попробовать?

Ответы [ 2 ]

2 голосов
/ 12 мая 2010

Добавьте обратный вызов через signal(SIGABRT, <callback>), чтобы перехватить вызов, чтобы прервать его, прежде чем он завершит процесс. Если это произойдет до того, как вы нажмете main(), вам, возможно, придется прибегнуть к статическим глобальным и хитростям компилятора, чтобы его поймать.

0 голосов
/ 12 мая 2010

Код 3 обычно возвращается по ошибке. Попробуйте переключиться на Linux и отладить программу с помощью электрического забора. Это может дать вам дополнительное понимание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...