Is there a way to find what exception was caught by .NET code from the outside of the application?
I found that 3d party API throws an exception and suppresses it (I see the perf counter going up).
But it doesnt shows it in trace (I tried sysinternals dbgView).
What tool can show a caught exception?
The tool I always turn to in this situation is WinDBG. Download the 32bit version or the 64bit version, depending on the bitness of the process.
For some lame reason the latest version does not have a direct download link (only available in the SDK), so skip down to the ‘Previous Version’ section and grab the latest of those.
Load WinDBG after installing and do the following:
.loadby sos mscorwks(this loads the .NET debugger extensions)–
sxe clr(tells the debugger to break on managed exceptions)–
g(GO!)!peto see the exception details.The
!clrstackcommand is useful to see the managed stack or try!dumpstackto include native calls.If the debugger stops on an exception you don’t care about, just hit ‘g’ again until you get the one you want to see.
The
!helpcommand will show all the .NET extensions available and, if you wish to dig deeper, I highly recommend Tess Ferrandez’s blog.