Category Archives: Symbols

When Debug Symbols Get Large

TL;DR – upgrade your tools, including Visual Studio, windbg, and Windows Performance Toolkit, if you want to handle Chromium’s symbol files. Details: Death, taxes, and browser engines relentlessly growing – those are the three things that you can really be … Continue reading

Posted in Debugging, Programming, Symbols, uiforetw, xperf | Tagged , | 12 Comments

Compiler Tricks to Avoid ABI-Induced Crashes

Last month I wrote about an odd crash that was hitting a few Chrome users. Something was corrupting the XMM7 register and that was causing Chrome to crash. We fixed a couple of bugs in Chrome and we were able … Continue reading

Posted in Chromium, Debugging, Investigative Reporting, Symbols | Tagged , , , | 2 Comments

Please Restore Our Registers When You’re Done With Them

“Hey, you. Yes you, that function over there. When you’re cleaning up please remember to restore all of my registers. Yes, that one too – what do you think this is, Linux?” That’s the problem I was dealing with in … Continue reading

Posted in Chromium, Debugging, Investigative Reporting, Symbols | Tagged , , | 25 Comments

Determinism Bugs, Part Two, Kernel32.dll

It was literally the day after I cracked the __FILE__ determinism bug that I hit a completely different build determinism issue. I was asked to investigate why the Chrome build number reported for Chrome crashes on Windows 11 was lagging … Continue reading

Posted in Bugs, Chromium, Computers and Internet, Investigative Reporting, Programming, Symbols | Tagged , , | 19 Comments

Arranging Invisible Icons in Quadratic Time

Near the end of January I was pointed to a twitter thread where a Windows user with a powerful machine was hitting random hangs in explorer. Lots of unscientific theories were being proposed. I don’t generally do random analysis of … Continue reading

Posted in Investigative Reporting, Performance, Programming, Quadratic, Rants, Symbols | Tagged , | 18 Comments

Creating a Public Symbol Server, Easily

I’ve been a big fan of symbol servers for years. They are a part of the Microsoft/Windows ecosystem that is far better than anything I have seen for other operating systems. With Microsoft’s and Chrome’s symbol servers configured I can … Continue reading

Posted in Debugging, Programming, Symbols, uiforetw | Tagged | 15 Comments

New Xperf and new WPA in the new WPT

A new version of Windows means a new version of the Windows Performance Toolkit (WPT), the ship vehicle for xperf, WPA and other Event Tracing for Windows (ETW) tools. I’m a huge fan of xperf/ETW (just look at some of … Continue reading

Posted in Symbols, xperf | Tagged , , , | 4 Comments

Debugging Optimized Code–New in Visual Studio 2012

For years (decades?) one of the most requested features in Visual C++ has been better support for debugging optimized code. Visual Studio’s debug information is so limited that in a program that consists just of main(argc, argv) the VS debugger … Continue reading

Posted in Programming, Symbols | Tagged , , , , , | 35 Comments

Symbols the Microsoft Way

Symbol servers allow developer tools on Windows to automatically find symbols (debug information). All you have to do is adjust the tool’s settings to point at the Microsoft/Chrome/whatever symbol server and the appropriate symbols will be automatically downloaded. The Chromium … Continue reading

Posted in Symbols, Visual Studio | Tagged , , , , | 68 Comments

Symbols on Linux update: Fedora Fixes

I wrote last month about the challenges of obtaining Linux symbols based on a build ID. I’m now pleased to say that getting Linux symbols based on a build ID is trivial on both Ubuntu and Fedora – things are … Continue reading

Posted in Linux, Symbols | Tagged , , , , , , | 12 Comments