Debug live websites with DebugDiag and WinDbg

Debugging and troubleshooting problems in a production environment is always a tricky endeavour.

You usually do not have the luxuries of having a debugger that allows you to step through your code and inspect you variables and stack trace. Some of the areas you might look at include the Event Viewer, to look for any error events or the application log files, to analyse any caught exceptions.

If the application is crashing and there’s nothing obvious available in the logs, your best bet is to perform post-mortem analysis with DebugDiag/AdPlus and Windbg.

When your application crashes, it might generate a mini-dump and sometimes a full-dump, if Windows Error Reporting (WER) is enabled. Look for any large files in this folder: “C:\ProgramData\Microsoft\Windows\WER\ReportQueue”

To capture a memory dump you can install DebugDiag in the server where your application is hosted and set a trigger for your type of problem.

Install DebugDiag by following this link: http://www.microsoft.com/en-gb/download/details.aspx?id=40336

Download and install the version that matches your system, x86 for 32bit systems, x64 for 64bit systems.

Start the “Debug Diag Collection” tool and select the option for your type of problem:

  • Crash – for an application crash
  • Performance – to diagnose high cpu slowdowns or low cpu hangs

debugdiag-crash-wizard

Capture a memory dump for an application crash

Capture a memory dump for an application with performance problems