Отправка крэша приложения в виндовский лог
От: umod.47 США http://uxaos.ru
Дата: 05.11.09 17:45
Оценка:
Есть приложение, написанное из одной интерфейсной части и кучи dll-библиотек, цепляемых при старте динамически (ближайший аналог — миранда). Среда разработки — Borland c++ Builder 6. Либы пишутся в том же борланде и в визуал студии (версию не помню, не я пишу). Периодически в результате кривых рук вся эта система во время очередного расчета, составленного из этих библиотек, падает с ошибкой, и какая либа его вызвала, сказать сложно. Вылезает сообщение типа "Исключение неизвестное исключение... бла бла бла... всем хана", нажатие ОК закрывает все приложение, не особо разбираясь.
Можно ли организовать процесс рабтоты так, чтобы в логе винды (управление компьютером -> просмотр событий -> приложения) можно было отследить, какая именно либа убила весь процесс. Ну либо каким-то другим способом решить насущную проблему.
Спасибо.

05.11.09 21:03: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Press ESCAPE to enter or ENTER to escape.
Keyboard not found. Press F1 to continue.
(C) BIOS
Re: Отправка крэша приложения в виндовский лог
От: Alexey Frolov Беларусь  
Дата: 06.11.09 08:49
Оценка:
Здравствуйте, umod.47, Вы писали:

U4>Есть приложение, написанное из одной интерфейсной части и кучи dll-библиотек, цепляемых при старте динамически (ближайший аналог — миранда). Среда разработки — Borland c++ Builder 6. Либы пишутся в том же борланде и в визуал студии (версию не помню, не я пишу). Периодически в результате кривых рук вся эта система во время очередного расчета, составленного из этих библиотек, падает с ошибкой, и какая либа его вызвала, сказать сложно. Вылезает сообщение типа "Исключение неизвестное исключение... бла бла бла... всем хана", нажатие ОК закрывает все приложение, не особо разбираясь.

U4>Можно ли организовать процесс рабтоты так, чтобы в логе винды (управление компьютером -> просмотр событий -> приложения) можно было отследить, какая именно либа убила весь процесс. Ну либо каким-то другим способом решить насущную проблему.
U4>Спасибо.

Можно установить при старте приложения SetUnhandledExceptionFilter и ловить и обрабатывать все подобные ситуации там. Но винда должна в таком случае сама создавать minidump файлы (и писать в тот самый лог, правда насчет этого не уверен, наверно зависит от настроек). Вот по этим minidump файлам и нужно разбираться кто был всему виной. Не знаю как борланд, а студия, либо WinDbg.exe умеют их читать
Re[2]: Отправка крэша приложения в виндовский лог
От: dead_ricky  
Дата: 10.11.09 01:07
Оценка: 1 (1)
Вот интересная статья на эту тему:
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.