Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2013, 19:31   #1
taimag
 
Регистрация: 21.01.2010
Сообщений: 3
Стрелка Глобальный обработчик отказа программы.

Здравствуйте. Уже целый день ищу способ как ловить момент аварийного завершения работы программы. Нашел функцию SetUnhandledExceptionFilter, но например выход за границы вектора оно не ловит. У меня есть программа с несколькими потоками. Мне нужно при крахе программы делать дамп памяти. Я делаю дамп через MiniDumpWriteDump. Собственно проблема - как при крахе в любом потоке ловить этот момент что бы успеть вызвать дампер? Всем заранее спасибо.
taimag вне форума Ответить с цитированием
Старый 15.10.2013, 20:27   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Так у вас явно нет краха.
Выход за пределы массива крахом не является.
Если пишете на С++ используйте классы для работы с массивами - у них в Debug сборке будут проверки на предмет выхода за пределы массива.
waleri вне форума Ответить с цитированием
Старый 16.10.2013, 08:35   #3
taimag
 
Регистрация: 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.
taimag вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработчик 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