When Windbg 18.104.22.168 came out a while ago, some were quick to notice that stack traces now showed managed and unmanaged stack frames interchanged, integrating the previously separate functionality of Son of Strike’s !CLRStack command. So disappointment was great when this stopped working with no explanation with the 22.214.171.124 debugger release.
The other day I was trying to be helpful to someone on the microsoft.public.windbg newsgroup that noticed the missing functionality in the latest revision. I was promptly taken aback by this surprising response from Pat Styles of Microsoft.
Apparently, integrated managed debugging was never intended to come out of Microsoft at its current, early stage. If you consider messages like “Integrated managed debugging does not support locals. See http://dbg/managed.html” you get when you try to examine locals in a managed stack frame, obviously being a reference to an Microsoft internal site, it seems to add up.
My best guess is that the dbghelp.dll and dbgeng.dll versions distributed with the 126.96.36.199 DTW release accidentally included support for managed code. They might simply support CLR PDBs or even CLR metadata (wouldn’t that be cool? Symbols for managed code even without a PDB) – but the unfortunate fact is that it’s all being scrapped. Worse, from Pat’s reply it appears Microsoft are unwilling to commit to when we might see this as supported and working functionality in the debugger.
Let’s hope it’s going to be sooner rather than later.