From: ddaniels@Linear Systems (MS managed) on
Is there any way to find out what the access violation exception
(0xc0000005) that I'm seeing in msvcr71.dll? It seems to be at address
fedc (fault address 0x000fedc).

For what it's worth, the flags are 0, record is 0, and the address seems
to be 000000007c34fedc.

Unfortunately I haven't been able to produce this error on a machine
that I'm allowed to attach a debugger.

Thanks

Drew Daniels
From: Oleg Starodumov on

> Is there any way to find out what the access violation exception
> (0xc0000005) that I'm seeing in msvcr71.dll? It seems to be at address
> fedc (fault address 0x000fedc).
>
> For what it's worth, the flags are 0, record is 0, and the address seems
> to be 000000007c34fedc.
>
> Unfortunately I haven't been able to produce this error on a machine
> that I'm allowed to attach a debugger.
>

Unfortunately there is not much you can do with only an address in a CRT DLL.
If you can get exactly the same version of the DLL as used on the system
where the application crashed, you can load the application (and the DLL)
into debugger and use the approach described in this article to find out
the function that caused the access violation:
http://www.cygnus-software.com/papers/release_debugging.html
(symbol server might be needed to get symbols for the DLL, see
symbol server section in VS debugger documentation)

When you have determined the name of the function in msvcr71.dll,
you can try to guess what function in your application could call it
(e.g. with a wrong parameter), or what kind of the application's state
could be corrupted to cause the function to crash at that point.

To get more informative crash reports, consider using minidumps:
http://www.codeproject.com/debug/postmortemdebug_standalone1.asp

You can either generate minidumps programmatically as shown in
the article, or configure just-in-time debugger on the target system
(e.g. Dr.Watson) to produce crash dumps for you:
http://www.debuginfo.com/articles/ntsdwatson.html
(Dr.Watson registration is described at the end, also crash dump creation
should be enabled in Dr.Watson's configuration dialog (open it by running
drwtsn32.exe)).

Regards,
Oleg
[VC++ MVP http://www.debuginfo.com/]