Описание тега structured-exception

4 ответа

Что я должен знать о структурированных исключениях (SEH) в C++?

Какие важные моменты о структурированных исключениях должен знать каждый разработчик C++?
1 ответ

Как реализовать SEH (Структурная обработка исключений) в VB6?

Может ли кто-нибудь привести пример внедрения SEH в VB6? Все, что я видел до сих пор, находится в C++
1 ответ

Как получить преимущества /EHa с /EHsc для конкретной функции?

Если я знаю, что конкретный extern "C" функция в моей программе (скажем, RaiseException) является единственной функцией, которая вызывает исключения SEH, и я хочу, чтобы они были преобразованы в исключения C++, есть ли способ для меня "выборочно вкл…
13 авг '12 в 23:12
1 ответ

Отображение внешних кодов ошибок в std::error_condition

Я смотрю на изменение структурированного кода отображения исключений в MS, мы должны использовать новый механизм C++ 11 error_code / error_condition / exception. Насколько я понимаю, общая философия заключается в том, что вы должны сначала попытатьс…
26 окт '12 в 19:57
1 ответ

Последствия использования структурированной обработки исключений (SEH)?

Я вижу, что Даг Харрисон сделал хорошее заявление о том, что "не так" с использованием (то есть перехватом) структурированных исключений (см. Вопрос № 3). Но какие еще последствия есть? Например, что произойдет, если у меня есть несколько проектов, …
19 фев '11 в 21:10
2 ответа

Почему 64-битная Windows не может отменить исключения пользователя-ядра-пользователя?

Почему 64-битная Windows не может разматывать стек во время исключения, если стек пересекает границу ядра - когда 32-битная Windows может? Контекст всего этого вопроса исходит из: Случай исчезновения исключения OnLoad - исключения обратного вызова п…
1 ответ

.seh_stackalloc и выравнивание стека

Я пишу некоторую сборку x64 для ассемблера GNU. Я пытался прочитать о директивах.seh_*, но я не нахожу много информации о них. gas документы не упоминают их вообще. Но, насколько я понимаю, если мой код может находиться в стеке во время операции раз…
3 ответа

Смешивание обработки исключений C++ и SEH (windows)

У меня есть функция, в которой я звоню getaddrinfo() чтобы получить sockaddr* какая целевая память выделяется системой. Как многие могут знать, вам нужно позвонить freeaddrinfo() освободить память, выделенную функцией getaddrinfo(). Теперь в моей фу…
2 ответа

Отчет об ошибках SEH

У меня есть программа Visual Studio 2008 C++, где программа обернута в __try/__except блок для захвата любых исключений SEH. Фильтр исключений создает журнал ошибок и дает пользователю подробные инструкции о том, как отправить отчет о неисправности.…
2 ответа

Как я могу обработать нарушение доступа в Visual Studio C++?

Обычно нарушение прав доступа завершает программу, и я не могу поймать исключение Win32, используя try а также catch, Могу ли я сохранить работоспособность моей программы даже в случае нарушения прав доступа? Желательно обработать исключение и показ…
1 ответ

Пути сбоя неуправляемого процесса Windows?

Я пытаюсь понять, каким образом неуправляемый процесс Windows в пользовательском режиме может "аварийно завершить работу" (что на самом деле слишком сложный термин). Вот способы, которые я знаю до сих пор: Необработанное структурированное исключение…
31 авг '10 в 20:47
2 ответа

Что именно является "определяемым приложением" в UnhandledExceptionFilter?

MSDN описывает UnhandledExceptionFilter следующим образом: "Определенная приложением функция, которая передает необработанные исключения отладчику, если процесс отлаживается". Но эта функция явно предоставляется операционной системой в kernel32.dll…
31 авг '10 в 17:09
5 ответов

Как я могу гарантировать перехват структурированного исключения EXCEPTION_STACK_OVERFLOW в C++ в Visual Studio 2005?

Фон У меня есть приложение с Poof-Crash[1]. Я вполне уверен, что это из-за взорванного стека. Приложение является многопоточным. Я собираю сEnable C++ Exceptions: Yes With SEH Exceptions (/EHa)". Я написал функцию транслятора SE и назвал _set_se_tra…
1 ответ

Конфигурирование контекста модуля с плавающей запятой в WIN32 против WIN64

Я пытаюсь написать необработанный фильтр исключений (см. SetUnhandledExceptionFilter()) для использования с Windows SEH для сообщения о недопустимых операциях с плавающей запятой. Я хотел бы перехватить исключение, распечатать трассировку стека, зат…
2 ответа

Как получить имя модуля, вызвавшего структурированное исключение, с помощью структуры _EXCEPTION_POINTERS? (win32 C++)

(Платформа Win32 C++) Используя __try и __finally, как я могу получить имя модуля (и адрес) причины для исключения? Я вызываю GetExceptionInformation(), но из-за этого я не уверен, где эта информация. Учитывая другие ресурсы онлайн и в MSDN, кажется…
1 ответ

Лучшее место для вызова MiniDumpWriteDump(), чтобы поймать сбой

У меня есть большая Win32-программа, которую я поддерживаю, и я бы хотел, чтобы она автоматически и безоговорочно генерировала файл мини-дампов всякий раз, когда случается что-то плохое. Я не могу попросить клиентов установить userdump.exe, и я не м…
0 ответов

При каких обстоятельствах EXCEPTION_RECORD ссылается на другое вложенное исключение?

Документация для _EXCEPTION_RECORD говорит об одном из его членов, struct _EXCEPTION_RECORD *ExceptionRecord Указатель на связанную структуру EXCEPTION_RECORD. Записи об исключениях могут быть объединены в цепочку для предоставления дополнительной …
1 ответ

Должен ли __finally запускаться после EXCEPTION_CONTINUE_SEARCH?

В следующем коде функция foo называет себя рекурсивно один раз. Внутренний вызов вызывает нарушение прав доступа. Внешний вызов ловит исключение. #include <windows.h> #include <stdio.h> void foo(int cont) { __try { __try { __try { if (!c…
27 сен '15 в 08:11
1 ответ

Восстановление контекста после обработки исключения работает только с включенными VS /RTC (проверки времени выполнения)

Моя конечная цель здесь - предоставить средства для перехвата исключения с плавающей запятой, печати трассировки стека и возобновления выполнения с отключенными исключениями с плавающей запятой (с использованием полученных значений не конечного числ…
06 мар '17 в 19:58
2 ответа

Структурный обработчик исключений (SEH) не улавливает повреждение кучи

Я пишу небольшую утилиту (VC 2010, no clr), которая выполняет одну простую задачу (растеризацию) с использованием сторонней библиотеки. Позже утилита будет использоваться большим приложением. Иногда утилита вылетает из-за некоторого повреждения кучи…