Production time debugging
and
Instrumentation

Dump analysis and WinDbg

A Three-day Workshop

Description

Taking a memory dump of a running process is as simple as right clicking on a line in the task manager. Getting the information hidden in the dump requires knowledge of the WinDbg tool and some background on windows and .NET internals.
A process dump is a huge database full of valuable data about the process state at the time the dump was taken. From this data, using WinDbg, a programmer can find bugs that occurred only at customer site and discover the cause of malfunctions that conventional tools fail to discover.
This 3 day workshop covers everything a programmer requires to analyze managed and native process dumps, based on real problems and bugs encountered in the field.
Learning WinDbg and dump analysis is not just about the syntax and usage of the commands. Participants gain many insights about the .NET runtime and Windows OS internals. Those insights are valuable for writing better and more efficient code.
The workshop offers original material based on field experience and information taken from little-known Microsoft support articles and documentation. The workshop is practical and the participants will practice the techniques in a lab environment. There isn’t any Microsoft Official Curriculum course with the information given in this workshop.

Target Audience

The Workshop is for senior developers, team leaders and technical leads in software projects.

Pre-requisites

At least three years of practical experiences in programming and debugging of user mode applications.

Main Topics:

  •  The Debugging tools for Windows package.
  •  Configuring the debugging environment.
  •  Extracting a dump from a program.
  •  Specific extracting techniques for IIS and services.
  •  Managed world Vs. Native world.
  •  Useful WinDbg commands.
  •  WinDbg extensions and useful commands.
  •  Handling common debug scenarios.
  •  Analyzing managed and native hangs.
  •  Analyzing managed and native crashes.
  •  Analyzing managed and native memory issues.
  •  Analyzing managed and native Deadlocks.
  •  Analyzing mixed managed and native code.
  •  Other useful tools for analyzing dumps (DebugDiag, memory profiler, etc.)
  •  Tips, tricks and lessons learnt in the field.