Please let me know if this has been asked before, I wasn't able to find any questions on this subject:-
I need to determine the inner exception of an exception thrown on a computer with the .net framework installed but not Visual Studio (nor is it possible to install Visual Studio on the computer). How can I examine this inner exception?
Note a few points:
Thanks!
Press F5 to run the program in Debug mode. Another way to start debugging is by choosing Debug > Start Debugging from the menu. Enter a string in the console window when the program prompts for a name, and then press Enter . Program execution stops when it reaches the breakpoint and before the Console.
In the Options dialog box, choose Debugging, Symbols, select the Microsoft Symbol Servers check box, and then choose the OK button. The Processes dialog box appears. Select the Show processes from all users check box. In the Available Processes section, choose the process for your service, and then choose Attach.
Have you had a look at MDBG? It may take you a while to get around but is fairly straight forward.
Also DbgClr may be an option, I think its still supposed to be in the SDK somewhere.
It is actually fairly simple to do this with WinDbg if you have a crash dump. Load the dump into WinDbg, load sos, and run the printexception command.
>.load sos
>!printexception
This will tell you the exception as well as point you to the inner exception. Output will be something like:
0:000> !printexception
Exception object: 0135b340
Exception type: System.ApplicationException
Message: GetAverage failed
InnerException: System.IndexOutOfRangeException, use !PrintException 01358394 to see more
<stack trace follows>
If you don't have a memory dump already, you can create one using adplus (which comes with WinDbg).
>adplus -crash -o<dump location> -quiet -pn<name of process>
If you prefer to use PID use the -p
option instead.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With