C++: есть баг, но под отладчиком пропадает.

программирование С++ баг отладка отладчик

Мне нужно написать для большой программы плагин для понимания нового формата файлов. Написал. По юнит-тестам всё работает правильно. Запускаю программу - молча падает. Запускаю в отладчике - прекрасно работает. Как теперь хоть примерно локализовать место падения?
Исходники всей проги у меня есть, но они огромны.
Писать логи тоже не знаю как, поскольку программа огромна и что там в ней падает...... Не хватит и месяца, чтобы добавить дебаг-лог во все функции.
Пишу под Windows, 32 бита, в QtCreator, компилирую свежим mingwом. Собирал под линь - та же фигня.
Собственно, вопрос: подскажите теорию поиска таких странных багов. Или ссылку на статью хорошую по теме. (рус/англ)
Я что-то не нагуглил.
P.S. а дедлайн, как всегда, вчера.

Примечание:
Ошибку нашёл чисто случайно. В базе данных текстовое поле лежит в UTF16 а называется оно UTF8Title. А я неделю отлаживал. Я так перестану верить названиям переменных, блин! Сейчас найду по blame кто это сделал, и приду к нему с пивом.
Всем спасибо.
Ответы:
Если запускаете под дебаггером без брейкпойнтов - все равно баг пропадает?
Без Вашего плагина программа не падает?
мда, в qt конечно не весело... а вообще есть EurekaLog - очень удобная штука для таких случаев
А что значит "молча падает"? Без предложения отладчик запустить? В системе настроен запуск отладчика при ошибках в программах?
А что за отладчик? Может в нём обработка исключений настроена неправильно? Можно попробовать какой-нибудь другой отладчик, пожертвовав видимостью qt-шных классов.
надо искать где падает.
Под отладчиком.. может поменяться работа с дин. памятью. Проверяйте malloc-free, new-delete. Под линуксом посоветовал бы valgrind. (если получится граф. приложение под ним запустить то valgrind --tool=memcheck ). Еще под линуксом (современным) попробовать dmalloc или  MALLOC_TRACE=log ./ваша_программа (+ см http://midatl.radford.edu/docs/C/Allocation-Debugging.html )
Попробуйте взять свежий gcc,  с опциями -W -Wall (для ворнингов) и -fbounds-checking (для проверки выходов за пределы массивов)
под линуксом тоже не определяет место падения?
может такой вариант что у вас плагин требует какую-то библиотеку, в отладчике он подгружает эту библиотеку, а когда так запускаете то эта либа не загружена...
посмотрите зависимости своего проекта.


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.