Вопрос

Зная код исключения, есть ли способ узнать больше о том, что означает фактическое исключение, которое было сгенерировано?

Мое исключение, о котором идет речь:0x64487347

Адрес исключения:0x1

Стек вызовов не показывает никакой информации.

Я просматриваю файл .dmp с ошибкой, а на самом деле не отлаживаю его в Visual Studio.

Это было полезно?

Решение

Поскольку вы просматриваете аварийный дамп, я предполагаю, что он поступил от клиента, и вы не можете легко воспроизвести неисправность с помощью дополнительных инструментов.

Мне нечего предложить, кроме как отметить, что код исключения 0x64487347 имеет код ASCII "dShG", и разработчики часто используют инициалы рутинного или аварийного состояния при составлении магических чисел, подобных этому.

Небольшое гугление выявило одно совпадение для dHsg в нужном контексте - название функции в поиске книги Google по запросу "Использование Visual C ++ 6" Кейт Грегори.К сожалению, само по себе это не помогло.

Другие советы

Истинное исключение C ++, генерируемое из среды выполнения Microsoft, будет иметь SEH-код 0xe06d7363 (E0 + 'msc').У вас есть какое-то другое исключение.

.NET генерирует исключения SEH с кодом 0xe0434f4d (E0 + 'COM').

Коды состояния NT задокументированы в ntstatus.h и обычно начинаются с 0x80 (предупреждения) или 0xC0 (ошибки).Наиболее известным является 0xC0000005, STATUS_ACCESS_VIOLATION.

Если вы знаете, какой блок выбросил исключение, можете ли вы поместить более конкретные обработчики в блок catch, чтобы попытаться изолировать его таким образом?

Вы создаете исключение, которое создали сами?

Редактировать:Я забыл указать вам на эта статья об исключениях Visual C ++, которые я счел весьма полезными.

Роб

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top