> !analyze -v is telling that the exception is 80000003 - break
> instruction exception
[quoted text clipped - 4 lines]
>
> How could I get the details of the ApplicationException?
When WinDbg have attached via .NET JIT debugging and with
such command line parameters, it will be in the context of the "break" thread,
not in the context of the thread that raised the exception. Therefore
you need to switch to the thread that raised the exception.
If the exception happens at application startup, it usually will be thread 0,
so you should do
> ~0 s
to switch to that thread. (Otherwise, print call stacks of all threads to see which
one raised the exception). (Alternatve approach is to add -pv option to WinDbg
command line - it will cause non-invasive attach and thread 0 will usually be
the current one)
After you have switched to the right thread, you can use SOS e.g. to
print the managed call stack (!clrstack, etc.).
If you want to use !currentexceptionname, you need one more step -
lookup the exception context on the thread stack and use .cxr command
to switch to it. There are two most typical approaches to it:
http://blogs.msdn.com/jmstall/archive/2005/01/18/355697.aspx
http://www.debuginfo.com/articles/easywindbg2.html#crashdumpanalysis
(in the second link, see at the end of the topic)
--
Oleg
[VC++ MVP http://www.debuginfo.com/]
Loy - 28 Sep 2006 13:47 GMT
Thanks Oleg - It works!
1. I've added the -pv to the command line
2. Need to load sos.dll before !analyze - in order for analyze to
understand managed exceptions
A problem with .net framework 1.1 is that unhandled exception in thread
other than the main thread does not (always) crash the application
Loy
> > !analyze -v is telling that the exception is 80000003 - break
> > instruction exception
[quoted text clipped - 32 lines]
> Oleg
> [VC++ MVP http://www.debuginfo.com/]