Success with WinDBG Extensions

A couple questions have come to me recently around the use of WinDBG extensions.  1)      Why do I receive an error when trying to load or execute commands with my WinDBG extension? 2)      Why do I have to prefix my commands with the name of the extension (ex. !sos.help vs. !help)? If you run the…

0

Why Set debug=”false” When retail=”true” is Already Set in .NET Framework 2

Over time many developers have been caught by someone leaving the debug=”true” set in their production environment.  To work around this some development shops implement a formal release process and set the retail=”true” element in the machine.config.  The retail=”true” will disable many of the debug aspects such as tracing, compilation etc.  When you are debugging…

0

Building a Dual Boot Machine with VHD’s

For years I have struggled with the typical developer decisions when building their workstation.  Do I make this a dual boot machine and how much space should I leave to each partition if I do?  With Windows 7 and Windows 2008 R2 I have finally been able to handle this with far less pain.  The…

0

Basic Analysis of a Managed Memory Dump (.NET)

When looking for the root cause of a crash collecting the memory dump is only the first step.  This posting assumes that you already have a properly configured version of WinDBG along with a memory dump of a managed process.  In order to highlight the differences between managed and unmanaged debugging I will continue with…

1

Basic analysis of an unmanaged memory dump (C++)

Properly collecting a User Mode memory dump is only the first step in uncovering the cause of a crash or hang.  The remainder of this post will assume that you have already configured WinDBG correctly and captured a memory dump using the techniques outlined in previous posts.  For the purpose of this posting we will…

3

How to Setup WinDBG

In order to successfully and effectively analyze a dump file it is very important to ensure your environment is configured correctly.  The first step is to ensure symbol paths are setup.  This is extremely important to have a successful analysis session.  Assuming you want your symbols to be stored on your local hard drive in…

0

How to Collect a Memory Dump Using ADPLUS and DebugDiag

A user mode memory dump is a file typically with a DMP extension that contains a portion of virtual memory and CPU registers.  Two important items captured by the memory dump include the call stack for each thread and the exception record.  This information is captured for the moment in time that the memory dump…

0

Post Mortem Debugging Overview

Throughout my career in software development I have come across issues that are tough to capture or only seem to occur in production.  Each time I encountered these situations I would say to myself, there has to be something better.      Post Mortem debugging allows you, through the use of several tools, to take a…

0

Blog and Comment Policy

My Blog PolicyThe opinions and comments in this blog reflect my own personal perspectives.  This blog does not necessarily reflect the opinion of my employer or any group with which I am currently affiliated or with which I have been affiliated in the past. Comment Policy I very seldom delete comments, but in the event…

0