C ++ Исключение поиска кода - PullRequest
1 голос
/ 14 сентября 2008

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

Мое исключение в вопросе: 0x64487347

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

В стеке вызовов нет информации.

Я проверяю .dmp сбоя и фактически не отлаживаю в Visual Studio.

Ответы [ 3 ]

6 голосов
/ 15 сентября 2008

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

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

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

4 голосов
/ 14 сентября 2008

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

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

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

0 голосов
/ 14 сентября 2008

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

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

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

Rob

...