Just Because You Are Using Debugging Tools Doesn’t Mean You Are Debugging

One of my saucy co-workers asked why were we using the various debugging tools (WinDbg, Adplus, Debug Diagnostics) to resolve issues with crashing apps. This turned into a debate, mostly over semantics, because were not actually resolving issues using these tools, at least not directly. It should be pointed out that just because you use debugging tools does not imply that you are debugging. The process of debugging means to remove the bugs from program code. That’s not what I (or we) are using the debugging tools for. For that, we would need access to the source code; and even if we had access to it we are not professional programmers and lack the experience to correct buggy code.

The main purpose of using these tools in our capacity is to diagnose an application hang or crash when the normal troubleshooting techniques fail. The goal is to identify the component or module causing the hang or crash and then work around it by either upgrading (or downgrading), disabling, or removing the app, and hopefully it is not a mission critical app. If it is a mission critical app, then further escalation needs to take place that involves the developer and you can provide your crash/hang dumps to them for analysis.

In the end, what you have done is used these tools for Basic Crash or Hang Analysis. This is where your job is complete and someone else’s begins.