imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 03.08.2005, 00:01     # 1
mymus
Guest
 
Сообщения: n/a

Question Ну как такое дебаггить? (VC++)

Привет.

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

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

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

PS: VC++ 7.1, MFC, unmanaged, WinXP/Win2000Pro, multithreaded.
 
Старый 03.08.2005, 01:41     # 2
StPatrick
Guest
 
Сообщения: n/a

Пробовал переопределять _onexit, _atexit или SetUnhandledExceptionFilter? Если нет то попробуй, может поможет. Там по-моему еще функции были в 7.0, типа отлавливания pure-virtual function calls.
 
Старый 03.08.2005, 13:03     # 3
SapeR
::VIP::
 
Регистрация: 17.12.2002
Адрес: Q-ata, Israel
Сообщения: 310

SapeR Луч света в тёмном царствеSapeR Луч света в тёмном царствеSapeR Луч света в тёмном царствеSapeR Луч света в тёмном царствеSapeR Луч света в тёмном царстве
используй эксепшн хэндлинг (Exception Handlers) - тогда в случае "улёта" ты сможешь определить приблизительную причину выпада
Код:
__try
{
...
}
__finally
{
// этот код выполнится даже при падении аппликации
}
SapeR вне форума  
Старый 08.08.2005, 20:55     # 4
PSyton
Junior Member
 
Аватар для PSyton
 
Регистрация: 19.04.2002
Адрес: Дом
Пол: Male
Сообщения: 187

PSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форумеPSyton Популярный человек на этом форуме
ctrl+alt+E в студии и включаешь все исключения и будет тебе счастье.
__________________
Дураки не динозавры - они не вымрут...
PSyton вне форума  
Старый 09.08.2005, 18:51     # 5
SapeR
::VIP::
 
Регистрация: 17.12.2002
Адрес: Q-ata, Israel
Сообщения: 310

SapeR Луч света в тёмном царствеSapeR Луч света в тёмном царствеSapeR Луч света в тёмном царствеSapeR Луч света в тёмном царствеSapeR Луч света в тёмном царстве
pvs, у него в релизе падает, на надцатом часу пробега. До студии уже далеко. Хотя возможно если в дебаге поискать то найдёт чего ...
SapeR вне форума  
Старый 09.08.2005, 20:17     # 6
Sandman311
Guest
 
Сообщения: n/a

а AQTime нихт помогайт?
 
Старый 16.08.2005, 11:56     # 7
Buddy
Guest
 
Сообщения: n/a

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


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


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




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