![]() |
Ну как такое дебаггить? (VC++)
Привет.
Проблема: приложение само по себе "закрывается", то есть исчезает из списка процессов вообще. Баг относительно повторяемый, где-то в 50% запусков наблюдается, но, при этом, случается в разные моменты времени. Например, программа может проработать 30 минут, а может час а может и все 8 часов. Такие "выходы" однозначно не нормальные, так как при нормальном выходе создается файл отчета, а тут его нет. Никакого "умного" софта, который мог бы это провоцировать на компе не стоит, да и наблюдалось на разных компах. Вопрос: как отдебагить? Вычитка кода ничего не дала. Поскольку кода довольно много да и проявляется всегда в разные моменты времени, просто поставить брейкпоинты вряд ли удастся. Любые советы приветствуются. Спасибо заранее. PS: VC++ 7.1, MFC, unmanaged, WinXP/Win2000Pro, multithreaded. |
Пробовал переопределять _onexit, _atexit или SetUnhandledExceptionFilter? Если нет то попробуй, может поможет. Там по-моему еще функции были в 7.0, типа отлавливания pure-virtual function calls.
|
используй эксепшн хэндлинг (Exception Handlers) - тогда в случае "улёта" ты сможешь определить приблизительную причину выпада
Код:
__try |
ctrl+alt+E в студии и включаешь все исключения и будет тебе счастье.
|
pvs, у него в релизе падает, на надцатом часу пробега. До студии уже далеко. Хотя возможно если в дебаге поискать то найдёт чего ...
|
а AQTime нихт помогайт?
|
В особо тяжких случаях мона создать даталоггер, чтоб прога при входе на функцию прописывала на хард (лучше на рам-хард для скорости) что-то типа - " выполняется функция CountMymoney()", а в конце "функция успешно завершена". Попихать это в наиболее важные функции и ловить после по принципу тигра в пустыне, пока не упрешся в причину. Нет, конечно, смысла держать в памяти весь даталог, достаточно 10 последних вызовов. Метод достаточно трудоемкий, но мне помогал не раз.
|
| Часовой пояс GMT +4, время: 07:05. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.