В структуре EXCEPTION_DEBUG_INFO
, которая находится в структуре DEBUG_EVENT
, есть поле dwFirstChance:
Если элемент dwFirstChance не равен нулю, это первый раз, когда встречается отладчикисключение.Отладчики обычно обрабатывают точки останова и одношаговые исключения, когда они встречаются впервые.Если этот элемент равен нулю, отладчик ранее столкнулся с исключением.Это происходит только в том случае, если во время поиска структурированных обработчиков исключений ни один обработчик не был найден, либо исключение было продолжено.
Так что вам нужно будет искать моменты времени, когда dwFirstChance равен 0.
Но если вы просто хотите перезапустить свое приложение в случае сбоя, может быть проще создать другое приложение для отслеживания сбоя первого, чем использовать API отладки Windows.