Reputation: 141
In my past life as a COBOL mainframe developer I made extensive use of a tool called Abendaid which, in the event of an exception, would give me a complete memory dump including a formatted list of every variable in memory as well as a complete stack trace of the program with the offending statement highlighted. This made pinpointing the cause of an error much simpler and saved a lot of step-through debugging and/or trace statements.
Now I've made the transition to C# and .NET web development I find that the information provided by ASP.NET only tells half the story, giving me a stack trace, but not any of the variable or class information. This makes debugging more difficult as you then have to run the process again with the debugger to try and reproduce the error, not easy with intermittent errors or with assemblies that run under the likes of SQL Server or CRM.
I've looked around quite a lot for something that does this but I can't find anything obvious. Does anyone have any idea if there is one, or if not, what I'd need to start with in order to write one?
Upvotes: 4
Views: 3533
Reputation: 109130
To automate the generation of process dumps you can:
AdPlus
from the Debugging Tools for Windows (it can be xcopy deployed from an installation of the tools to the target machine: no need to add an install in production).ProcDump
from SysInternals.Once you have the dump, you'll need the SoS
("Son of Shrike") extensions in WinDBG to get .NET level information.
Upvotes: 1
Reputation: 4489
After extensive googling for ".NET memory dump" I found this as a first non-commercial link. There's also similar thread on SO: Tool for analyzing .Net app memory dumps.
Upvotes: 1
Reputation: 499232
Take a look at DebugDiag.exe - it includes utilities to get a memory dump that can be analyzed with windbg.
The Debugger Host: The Debugger Host (DbgHost.exe) hosts the Windows Symbolic Debugger Engine (dbgeng.dll) to attach to processes and generate memory dumps.
(emphasys mine)
Upvotes: 1