views:

1393

answers:

3

Knowing an exception code, is there a way to find out more about what the actual exception that was thrown means?

My exception in question: 0x64487347

Exception address: 0x1

The call stack shows no information.

I'm reviewing a .dmp of a crash and not actually debugging in Visual Studio.

A: 

If you know which block threw the exceptioon, can you put more specific handlers in the catch block to try and isolate it that way?

Are you throwing an exception that you rolled yourself?

Edit: I forgot to point you towards this article on Visual C++ exceptions which I've found to be quite useful.

Rob

Rob Wells
+1  A: 

Because you're reviewing a crash dump I'll assume it came in from a customer and you cannot easily reproduce the fault with more instrumentation.

I don't have much help to offer save to note that the exception code 0x64487347 is ASCII "dShG", and developers often use the initials of the routine or fault condition when making up magic numbers like this.

A little Googling turned up one hit for dHsg in the proper context, the name of a function in a Google Book search for "Using Visual C++ 6" By Kate Gregory. Unfortunately that alone was not helpful.

DGentry
cool I never knew that about the magic number in the exception code.
Brian R. Bondy
+2  A: 

A true C++ exception thrown from Microsoft's runtime will have an SEH code of 0xe06d7363 (E0 + 'msc'). You have some other exception.

.NET generates SEH exceptions with the code 0xe0434f4d (E0 + 'COM').

NT's status codes are documented in ntstatus.h, and generally start 0x80 (warnings) or 0xC0 (errors). The most famous is 0xC0000005, STATUS_ACCESS_VIOLATION.

Mike Dimmick