WinDbg fails to load SOS.dll

It is possible to install both x86 and x64 version of WinDbg on the same machine, and if you’re debugging a 32 bit .NET app you should use the x86 version of WinDbg/SOS. The error message is telling you that you’re trying to load the wrong version of SOS for the bitness of the application. … Read more

_NT_SYMBOL_PATH format

SRV*C:\dev\symbols*http://msdl.microsoft.com/download/symbols;\\foo\build1234 Should work fine, if \\foo\build1234 is just flat PDB’s. Cache isn’t needed here; you just need to add the directory to your symbol path. The cache keyword specifies where you want to cache your symbol files, and is useful for caching symbols locally from non-indexed shares (like \\foo\build1234) cache*C:\dev\symbols;SRV*C:\dev\symbols*http://msdl.microsoft.com/download/symbols;\\foo\build1234 The above path would store … Read more

Good tutorial for WinDbg?

Basic Tutorials & Usage Demos Installing and Configuring WinDbg (Windows Debug Tools) Mike Taulty – A word for WinDbg WinDbg Tutorials Windows Debuggers: Part 1: A WinDbg Tutorial Different Ways to “Start”/Attach WinDbg Start Debugging with WinDbg (includes how to debug an .msi) How to debug a Windows service Setting up Windows Debugging Debugging SQL … Read more

How can you change an age-mismatched PDB to match properly?

the windbg will not modify pdb’s age – it only looks it up to match that of executable – the compiler does when it (re)generates executable and debug files. now, based on the debuginfo.com article, it is not too difficult to arrive at the proper debug directory (of type codeview), match it against PDB7 signature … Read more

WinDbg symbol resolution

Sorry for the late reply. In your post you mention that you are seeing the following error message. *** WARNING: Unable to verify checksum for C:\TheProgram\SomeSubfolder\AnotherSubfolder\MyDll.dll You also ask the question, “where do I put my symbols for my DLL in the symbol path?” Here is a response for the first problem: Steps to identify … Read more

What the “EE” means in SOS?

The CLR started life long before it was adopted to run .NET code. Started as the Universal Runtime in Project 42, a highfaluting project that failed but whose parts survived in subsequent projects, like .NET. Continued into NGWS (Next Generation Windows Services) before it evolved as the execution engine for .NET. 42 was the building … Read more

.NET WCF w3wp native memory leak and 18k dynamic assemblies of 0 sizes in loader heap

WCF automatically generates serialization classes in memory for some communication protocols, mostly for XML communication, and seems to create a different class for each possible variation in the message structure; this easily explains the number of assemblies. This behavior is apparently normal for XML-based WCF protocols. If you have control over the protocol, switching to … Read more

tech