У меня обработчик исключений, настроенный с использованием SetUnhandledExceptionFilter
, который работает нормально.Однако, если я выбрасываю исключение из кода OpenMP, я получаю стандартное окно «сбой приложения», и обработчик не вызывается, однако я могу просто присоединить отладчик и увидеть, что стек вызовов заканчивается на _CxxThrowException ипродолжается в KernelBase.dll! RaiseException.Я знаю, что программа OpenMP, которая генерирует исключения внутри параллельных областей, неправильна, но я все равно хотел бы получить аварийный дамп.Как я могу получить вызов обработчика исключений в этом случае?
Это должно быть возможно, особенно если отладчику удается получить окно «Необработанное исключение» при подключении к приложению после сбоя (т.е. я могу получитьхорошая трассировка стека и прочее.) Это на Windows 7 с VC ++ 2010.
(В конце концов, каждый поток фактически вызывает мой обработчик исключений. Если происходит сбой, я выбираю «Отладка», а затем продолжаю на каждомнеобработанное исключение, обработчик в конечном счете вызывается, и ему также удается выписать значимый мини-дамп. Wtf?)