Windows Kernel Mode Debugging and Crash Dump Analysis Course


Duration 3 days lecture + hands-on lab
Audience Product support engineers, hardware and software QA engineers, field application engineers, application developers and device driver developers
Pre-requisites Understanding of operating system concepts and working knowledge of Windows NT/2K/XP/2003 operating system is required. Familiarity with ‘C’ programming language and DDK API is preferred.
Description This hands-on course focuses on kernel mode crash dump debugging. The Windows debugger, debugging symbols, kernel mode crash dumps, causes of crashes and crash dump analysis techniques for debugging crashes, hangs and deadlocks are discussed in detail.
In the hands-on labs attendees apply the debugging techniques learnt in the class to analyze multiple crash dumps representing different crash and hang scenarios.
Upon completion of this intermediate level course, attendees will be able to setup and use the debugger to investigate crash dumps, use appropriate debugger extension commands to examine key kernel data structures, understand functions at assembly level, interpret raw call stacks and analyze kernel mode crash and hang dumps.

Windows Debuggers
  • WinDBG & KD
  • Debugger Setup
  • Debugging Scenarios
  • Debugger Extension DLLs
  • Debugger Commands
Debugger Symbols
  • .PDB Files
  • Type Information
  • Public & Private Symbols
  • Symbol Tools
  • Symbol Server
Debugging Assembler Code
  • x86 Assembly Language
  • Registers
  • Instruction Formats
  • Common x86 Instructions
  • Code Optimization
  • Disassembly Techniques
  • Essential Compiler Flags
  • Hot Patching
Debugging Call Stacks
  • Function Prolog and Epilog
  • Compiler Calling Conventions
  • Stacks Frames
  • FPO Information
  • Debugging Corrupt Stacks
Debugging Crash Dumps
  • Crash Dumps
  • Categories of Crashes
  • Bug Check Codes
  • !analyze Command
  • Debugger Contexts
  • Common Analysis Steps
  • Analyzing System State
Debugging Tools and Techniques
  • Debugging Memory Corruption
  • Debugging Memory Leaks
  • Debugging Third Party Drivers
  • Debugging with Checked Build
  • Configuring System Debugging Options
  • Debugging Driver Verifier Crashes
  • Debugging Performance Issues