WARNING: Stack unwind information not available. Following frames may be wrong.

I’m sure if you have ever used the WinDbg family of debuggers sometime, you must have seen the above message. What does it really mean? How does it affect you? Quick Background on stack operation In x86, the way the stack is built up, the entry point of the function (a.k.a. prolog) generated by the…


YADCU – Yet another dump capture utility

The plethora of dump capture tools is amazing and sometimes confusing. But here is one from Mark Russinovich which looks interesting: ProcDump. Some unique capabilities I can see in this tool are things like CPU threshold based triggers, the ability to clone a process so that it is suspended for minimum time when dump is…


Low Fragmentation heap details

Quick post here: I recently came across a great presentation by Richard Johnson which among other things talks about the implementation details behind ntdll’s Low Fragmentation Heap. While officially not much documentation is available on this subject, I believe Richard’s presentation offers pretty much the most accurate publicly available details on the same.


The meaning of CID in output of kernel debugger commands

Recently someone asked me what was the real meaning of the ‘Cid’ field which appears in the output of commands such as !process and !thread in the kernel debugger (kd). Though from a practical perspective I was aware that these represent the Process ID and Thread ID, I was unsure of what Cid stands for….


Quick Tip: vfbasics!_AVRF_EXCEPTION_LOG_ENTRY symbol not resolved?

I was debugging some issues with the help of Application Verifier and WinDbg. Since I was onsite I did not have any access to Microsoft’s private symbol servers, so I was using the public symbol server (http://msdl.microsoft.com/download/symbols). On executing the !avrf extension command in WinDbg I was presented with the following error message in WinDbg:…


t-SQL Anti-Pattern: Index Key Order and Query Expression Order

This is really not a T-SQL anti-pattern as much as it is a database design issue, but we see it so often that it’s worthwhile bringing it up and clarifying things. For illustrating the scenario, let’s examine the table Person.Contact in the AdventureWorks database. It has 2 columns called FirstName and LastName. Let’s say an…



Let’s say you use the Visual Studio Remote Debugger extensively, and with a wide variety of remote targets. Very quickly the list of qualifiers (see the image below to understand what I refer to) can grow quickly with ‘noise’ items. If you were curious about where these are stored, they happen to be under one…


Debugging Toolbox

This one is a quickie for an easy reference to most commonly used debugging tools and links. I hope you find it useful, and kindly indicate your feedback on this page by using the comments section or by rating the post! Debugging Toolbox   Tool Key Usage Scenarios Download location WinDbg Interactive production debugging Dump…