Windows User 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 course introduces key user mode debugging concepts and walks through a collection of common application level problems and the tools & techniques to debug them using live debug scenarios and crash dumps.
The hands-on labs provide students an opportunity to apply the theory learnt to analyze the root cause of application failures.
Upon completion of this intermediate level course, attendees will be able to categorize application failure symptoms, identify tools to investigate and isolate the problem and use advanced debugging techniques to root cause the failure.

Debuggers & Symbols
  • Visual Studio Debugger
  • WinDBG/CDB/NTSD
  • User Mode Debugger Extension DLLs
  • Debugger Commands
  • .PDB Files
  • Public & Private Symbols
  • Symbol Server
Debugging Assembler Code
  • x86 Assembly Language
  • Registers
  • Instruction Formats
  • Common x86 Instructions
  • Code Optimization
  • Essential Compiler Flags
  • Structures and Classes
  • COM Objects
Debugging Call Stacks
  • Function Prolog and Epilog
  • Compiler Calling Conventions
  • Stacks Frames
  • Frame Pointer Optimization(FPO)
  • Debugging Corrupt Stacks
Debugging Crash Dumps
  • User Mode Exceptions & Crashes
  • Crash Dump File Information
  • Dr.Watson & ADPlus
  • Debugger Contexts
  • Common Analysis Steps
  • Analyzing Process State
Debugging Tools and Techniques
  • GFLAGS
  • Application Verifier
  • API Logging
  • Compiler Run Time Checks
  • Win32 and C++ Exception Monitoring
  • Execution Tracing
  • Breakpoint Techniques
  • Debugging Services
Debugging Memory Issues
  • Process Heap
  • Page Heap
  • Debugging Memory Corruption
  • Debug C Run Time Library
  • Memory Leak Debugging Tools
  • Debugging Memory Leaks
  • Debugging Handle Leaks
Debugging Deadlocks
  • Critical Sections & Mutexes
  • Debugging Hangs
  • Debugging High CPU Usage
  • Debugging Remote Procedure Calls
  • Kernel Dumps to debug User Mode issues