|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.10.2013, 19:31 | #1 |
Регистрация: 21.01.2010
Сообщений: 3
|
Глобальный обработчик отказа программы.
Здравствуйте. Уже целый день ищу способ как ловить момент аварийного завершения работы программы. Нашел функцию SetUnhandledExceptionFilter, но например выход за границы вектора оно не ловит. У меня есть программа с несколькими потоками. Мне нужно при крахе программы делать дамп памяти. Я делаю дамп через MiniDumpWriteDump. Собственно проблема - как при крахе в любом потоке ловить этот момент что бы успеть вызвать дампер? Всем заранее спасибо.
|
15.10.2013, 20:27 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Так у вас явно нет краха.
Выход за пределы массива крахом не является. Если пишете на С++ используйте классы для работы с массивами - у них в Debug сборке будут проверки на предмет выхода за пределы массива. |
16.10.2013, 08:35 | #3 |
Регистрация: 21.01.2010
Сообщений: 3
|
Если кому интересно ответ оказался:
Глобальная регистрация (per-process): SetUnhandledExceptionFilter, signal, _set_invalid_parameter_handler, _set_purecall_handler. Регистрация для каждого потока (per-thread): set_unexpected и set_terminate. Правда выход за границы вектора все равно не удалось словить. Мне нужно поддержать программу из овер9000 строчек кода, + ест ьперегрузка оператора [ ] и своё поведение. В общем нужно ловить когда программа падает и уже оттуда делать лог. Пока все еще бьюсь над проблемой. Последний раз редактировалось taimag; 16.10.2013 в 11:54. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработчик FormClosing(Выход из программы) | Vetash | C/C++ Базы данных | 2 | 07.05.2013 16:04 |
Глобальный хук с подменой нажатия для определённой программы | Serge_Bliznykov | Общие вопросы Delphi | 0 | 09.01.2011 16:41 |
Обработчик события для смещения указателя мыши по окну программы... | vedro-compota | Мультимедиа в Delphi | 8 | 15.06.2010 06:08 |
Создание резидентной программы (обработчик прерывания). | Петруха | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 6 | 23.03.2009 16:31 |
Глобальный хук на мышь не глобальный О_о | JTG | Общие вопросы Delphi | 3 | 05.06.2008 17:41 |