Monday, March 01, 2010

Windows Debuggers: Part 1: A WinDbg Tutorial

Table of contents

   * Introduction
         o Overview of Debuggers
         o Comparison of Debuggers
         o WinDbg
         o PDB files
   * Debugging Scenarios
         o Remote Debugging
         o Just-in-time Debugging
         o 64-bit Debugging
         o Managed Debugging
         o Debugging Services
         o Debugging Exceptions
   * WinDbg Features
         o Debugger Extension DLLs
         o Dump Files
         o Crash Dump Analysis
   * WinDbg Settings
         o Symbol Files and Directories
         o Source Code Directories
         o Breakpoints, Tracing
   * Commands
         o Basic Commands
         o More Commands
         o Handy Extension Commands
   * Example
         o Suggested Exercises
   * Epilogue
         o Points to Note
         o Q & A
   * References

Introduction

In my professional career, I have seen most of us use Visual Studio for debugging but not many of the other debuggers that come for free. You may want such a debugger for many reasons, for example, on your home PC which you do not use for development but on which a certain program crashes from time to time. From the stack dump, you can figure out if IE crashed because of a third party plug-in.

I did not find any good quick starters for WinDbg. This article discusses WinDbg with examples. I assume you know the basic concepts of debugging – stepping in, stepping out, breakpoints and what it means to do remote debugging.

Note that this is meant to be a Getting Started document, which you can read and start using WinDbg. To know more about specific commands, consult the WinDbg documentation. You can use the commands presented in this document with any debugger provided by Microsoft, e.g. from the Command window of Visual Studio .NET.

This article is based on WinDbg 6.3.

This is the first of a series of articles on debugging. In my next article, I shall explain how to write debugger extension DLLs.

Read more: Codeproject

Posted via email from jasper22's posterous