TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Symbols the Microsoft Way (2013)

45 pointsby harporoederover 4 years ago

8 comments

saagarjhaover 4 years ago
The posture towards symbols on different platforms is quite interesting to see: I think all major OSes strip their binaries, but Microsoft provides them as a separate download and Linux of course has *-dbg packages and the upcoming debuginfod. In comparison, macOS is truly an infuriating platform because Apple strips their code and recommends others do so to (it&#x27;s done automatically as part of deployment postprocessing) for size improvements but because Apple and third party developers are sold on the FUD that providing symbols will ruin their business nobody ever provides them separately. (Aside: if you ship software and run any sort of stripping&#x2F;minification on it and want to claim it is for the size benefits exclusively, you are honor bound to provide the information you removed, whether that is DWARF or a source map. No exceptions. Personally, I consider this important enough to not do these things at all, but I get it if you fall on the other side of the &quot;size vs. inspectability&quot; spectrum–you just need to also provide the stuff you throw away if you don&#x27;t want to be annoying.)<p>More on point, though, I can see both Windows and Linux getting the experience of finding debug symbols to be pretty good™–but for the same reasons I cannot see macOS getting this unless attitudes change. Apple of course runs this internally and &quot;forgets&quot; to share the scripts with us, and I have heard of other companies doing similar things, but I don&#x27;t see any sort of unified effort in this area at all :(
评论 #25976852 未加载
评论 #25975029 未加载
评论 #25980688 未加载
评论 #25974980 未加载
muststopmythsover 4 years ago
Another related capability you can use when indexing PDBs for a build is the &quot;source server&quot;. It tags the pdb with source control commands to retrieve the source revision at the time of building. Enable the feature in the debugger and you don&#x27;t have to manually retrieve the right source code when you get a crash dump from a customer for an old version of your software.<p>It embeds executable source control commands in the PDB so you need to make sure you know where your PDBs come from.<p>Reference:<a href="https:&#x2F;&#x2F;docs.microsoft.com&#x2F;en-us&#x2F;windows&#x2F;win32&#x2F;debug&#x2F;source-server-and-source-indexing" rel="nofollow">https:&#x2F;&#x2F;docs.microsoft.com&#x2F;en-us&#x2F;windows&#x2F;win32&#x2F;debug&#x2F;source-...</a>
评论 #25980850 未加载
layer8over 4 years ago
For those wondering, “symbols” refers to auxiliary debugging information for binaries: <a href="https:&#x2F;&#x2F;docs.microsoft.com&#x2F;en-us&#x2F;windows-hardware&#x2F;drivers&#x2F;debugger&#x2F;symbols-and-symbol-files" rel="nofollow">https:&#x2F;&#x2F;docs.microsoft.com&#x2F;en-us&#x2F;windows-hardware&#x2F;drivers&#x2F;de...</a>
the_mitsuhikoover 4 years ago
I really, really, really wish other platforms would embrace the same concept. We (Sentry) have added support for the same concept for other platforms but sadly there is not a lot of uptick in the general Linux community to start producing indexed debug symbols repositories.<p>Here are all the formats for symbol servers we are currently support for Linux&#x2F;Mac and Windows: <a href="https:&#x2F;&#x2F;getsentry.github.io&#x2F;symbolicator&#x2F;advanced&#x2F;symbol-server-compatibility&#x2F;" rel="nofollow">https:&#x2F;&#x2F;getsentry.github.io&#x2F;symbolicator&#x2F;advanced&#x2F;symbol-ser...</a>
评论 #25973923 未加载
MarkSweepover 4 years ago
One development since that article was written is Source Link:<p><a href="https:&#x2F;&#x2F;docs.microsoft.com&#x2F;en-us&#x2F;dotnet&#x2F;standard&#x2F;library-guidance&#x2F;sourcelink" rel="nofollow">https:&#x2F;&#x2F;docs.microsoft.com&#x2F;en-us&#x2F;dotnet&#x2F;standard&#x2F;library-gui...</a><p>It makes it easy to publish symbols for you .NET nuget packages. When debugging, Visual Studio will automatically download these symbols and the source code from GitHub, so you can easily step through third party code.<p>There is also support for C++
jiggawattsover 4 years ago
Having worked with Citrix a lot, it was always nice that both Microsoft and Citrix provide symbol servers. Despite not having any kernel debugging experience at all, it was always worthwhile setting up WinDbg with those two symbol paths to do some drive-by diagnostics of any blue-screen crash dumps. More than half the time this would instantly identify the &quot;culprit&quot;.
adzmover 4 years ago
All that said, in the end you just set the sympath and everything ends up working. It&#x27;s incredibly refreshing and easy.
luxuryballsover 4 years ago
This was oddly nostalgic. Reminds me of all the time I spent tinkering with Windows 98 as a kid perhaps.