IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Ну как такое дебаггить? (VC++) (https://www.imho.ws/showthread.php?t=90327)

mymus 03.08.2005 00:01

Ну как такое дебаггить? (VC++)
 
Привет.

Проблема: приложение само по себе "закрывается", то есть исчезает из списка процессов вообще. Баг относительно повторяемый, где-то в 50% запусков наблюдается, но, при этом, случается в разные моменты времени. Например, программа может проработать 30 минут, а может час а может и все 8 часов. Такие "выходы" однозначно не нормальные, так как при нормальном выходе создается файл отчета, а тут его нет. Никакого "умного" софта, который мог бы это провоцировать на компе не стоит, да и наблюдалось на разных компах.

Вопрос: как отдебагить? Вычитка кода ничего не дала. Поскольку кода довольно много да и проявляется всегда в разные моменты времени, просто поставить брейкпоинты вряд ли удастся.

Любые советы приветствуются. Спасибо заранее.

PS: VC++ 7.1, MFC, unmanaged, WinXP/Win2000Pro, multithreaded.

StPatrick 03.08.2005 01:41

Пробовал переопределять _onexit, _atexit или SetUnhandledExceptionFilter? Если нет то попробуй, может поможет. Там по-моему еще функции были в 7.0, типа отлавливания pure-virtual function calls.

SapeR 03.08.2005 13:03

используй эксепшн хэндлинг (Exception Handlers) - тогда в случае "улёта" ты сможешь определить приблизительную причину выпада
Код:

__try
{
...
}
__finally
{
// этот код выполнится даже при падении аппликации
}


PSyton 08.08.2005 20:55

ctrl+alt+E в студии и включаешь все исключения и будет тебе счастье.

SapeR 09.08.2005 18:51

pvs, у него в релизе падает, на надцатом часу пробега. До студии уже далеко. Хотя возможно если в дебаге поискать то найдёт чего ...

Sandman311 09.08.2005 20:17

а AQTime нихт помогайт?

Buddy 16.08.2005 11:56

В особо тяжких случаях мона создать даталоггер, чтоб прога при входе на функцию прописывала на хард (лучше на рам-хард для скорости) что-то типа - " выполняется функция CountMymoney()", а в конце "функция успешно завершена". Попихать это в наиболее важные функции и ловить после по принципу тигра в пустыне, пока не упрешся в причину. Нет, конечно, смысла держать в памяти весь даталог, достаточно 10 последних вызовов. Метод достаточно трудоемкий, но мне помогал не раз.


Часовой пояс GMT +4, время: 07:05.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.