Reputation: 62734
My application throws InvalidCastException in the QA environment, something I cannot reproduce in development.
I wish to obtain the minidump at the exception moment. I know about adplus, but I am not sure how to use it so that it creates the minidump when InvalidCastException is thrown. Apparently, it does not distinguish one .NET exception from another. May be I am wrong and there is a way. Or, there is another tool to do it. Preferably free one.
Anyway, can anyone advice how to handle this issue?
Thanks.
UPDATE
UPDATE 2
Actually, I have "stolen" the minidump generation code from John robbins SuperAssert.Net Again, this is code for generating minidump from certain concrete point, whereas I need a more flexible approach in the style of adplus. John Robbins' approach is create a cdb script and then invoke the cdb debugger with that script to make it attach to the process and create the dump. It does not utilize the MiniDumpWriteDump API.
Upvotes: 7
Views: 6049
Reputation: 456417
The easiest way is to let it bubble up all the way out of the app, let the user report it to Microsoft, and enroll in Windows Error Reporting.
Alternatively, you can capture it by hand by using John Robbins' SUPERASSERT .NET (or a subset of his code).
UPDATE (for non-code solution): Take a look at Systems Internals' ProcDump.
Upvotes: 6
Reputation: 941317
It's possible, you have to .load sos.dll in your ADPlus script. This blog post shows you how.
Beware of the questionable joys of debugging managed code from a minidump. If you are running into hard-to-diagnose exceptions while it is still in QA, you'll run into it again when it goes into production. With dragons breathing fire added then. Take care of good unhandled exception logging by writing an event handler for AppDomain.UnhandledException. Logging e.ExceptionObject.ToString() gives a wealth of information.
Upvotes: 2
Reputation: 221997
Do you probably want to use MiniDumpWriteDump
API in your C# application? Look at http://blog.kalmbach-software.de/2008/12/13/writing-minidumps-in-c/ for a code example or search in Internat for MiniDumpWriteDump
and C#.
If you use Visual Studio 2010 you can load minidump direct in Visual Studio (see http://msdn.microsoft.com/en-us/library/d5zhxt22(v=VS.100).aspx)
Upvotes: 3