A Great Clash of
Symbols
Managing and Using Symbol Files
for .NET Applications
Presented by
Gregory M. Sohl
Agenda
Symbols
Visual Studio Symbol Usage
Other Tools Symbol Usage
Places to Store Symbols
Keeping Symbols with NuGet Pack...
Symbols
Produced by .NET compilers
Stored in PDB files
Contain – much less than for native
 Source file names
 Line # re...
Symbol File Creation
Created at compile time
A unique GUID is embedded with each
compile
 In the assembly
 In the PDB
Mi...
Kinds of Symbol Files
Private / Debug
 Debug Info = full
 Full debugging experience
Public
 Debug Info = pdb-only
 Exa...
Keeping Symbol Files
Symbols are as important as source!
 Use with dumps from QA/production
 Use with Intellitrace from ...
What to Keep
Local developer builds?
Builds released to QA?
Builds released to production?
Builds released to customers?
How VS Finds Symbols
It uses a search path
 Folder relative to the binary
c:MyDirsymbolsdll
c:MyDirdll
c:MyDir
Configured...
Supported Search Paths
Local drives
Network drives
Symbol server
 Ex.
srv*http://msdl.microsoft.com/download/symbols
Loca...
Simple Search Path Setup in VS
DEMO
VS DEBUGGING
Other Tools Symbol Usage
WinDbg / SOS – Low level debugger
Intellitrace – Runtime event recorder
Keeping Your Symbols
Application & Library Symbols
 Store them with your release on a file share
 Copy them back into pl...
Keeping Your Symbols
Put them on a Symbol Server
 symstore – part of the Windows SDK
Reference stored symbols via file pa...
Keeping Your Symbols
TFS Build System
 Can store source, binaries and symbols
 Good blog post:
http://bit.ly/TFSSourceSy...
My Goal
Move from CruiseControl.NET to TFS
Builds
Use TFS Build Management
 For
Binaries
Symbols
 On
All QA Builds with ...
Upcoming SlideShare
Loading in …5
×

A great clash of symbols

891 views
800 views

Published on

Slides from a presentation on managing Windows debugging symbols files.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
891
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

A great clash of symbols

  1. 1. A Great Clash of Symbols Managing and Using Symbol Files for .NET Applications Presented by Gregory M. Sohl
  2. 2. Agenda Symbols Visual Studio Symbol Usage Other Tools Symbol Usage Places to Store Symbols Keeping Symbols with NuGet Packages
  3. 3. Symbols Produced by .NET compilers Stored in PDB files Contain – much less than for native  Source file names  Line # references  Local variable names  Only the info that is not already contained in managed assemblies
  4. 4. Symbol File Creation Created at compile time A unique GUID is embedded with each compile  In the assembly  In the PDB Mismatched assembly + PDB
  5. 5. Kinds of Symbol Files Private / Debug  Debug Info = full  Full debugging experience Public  Debug Info = pdb-only  Examine stack traces, dumps, Intellitrace Generally, don’t do “full” for release builds due to performance hit
  6. 6. Keeping Symbol Files Symbols are as important as source!  Use with dumps from QA/production  Use with Intellitrace from QA/production Without matching Symbols files, working with either much more difficult
  7. 7. What to Keep Local developer builds? Builds released to QA? Builds released to production? Builds released to customers?
  8. 8. How VS Finds Symbols It uses a search path  Folder relative to the binary c:MyDirsymbolsdll c:MyDirdll c:MyDir Configured paths, cache and Symbol Server  Environment Variable: _NT_SYMBOL_PATH  Tools / Options / Debugging / Symbols List of Search Paths
  9. 9. Supported Search Paths Local drives Network drives Symbol server  Ex. srv*http://msdl.microsoft.com/download/symbols Local cache (highly recommended)  Ex. cache*c:MySymbols;
  10. 10. Simple Search Path Setup in VS
  11. 11. DEMO VS DEBUGGING
  12. 12. Other Tools Symbol Usage WinDbg / SOS – Low level debugger Intellitrace – Runtime event recorder
  13. 13. Keeping Your Symbols Application & Library Symbols  Store them with your release on a file share  Copy them back into place as needed for debugging
  14. 14. Keeping Your Symbols Put them on a Symbol Server  symstore – part of the Windows SDK Reference stored symbols via file path  SymbolSource.Server.Basic http interface to symstore Stores NuGet packages & symbols bit.ly/SymbolSourceServerBasic  NuPeek Stores NuGet packages & symbols https://bitbucket.org/thinkbeforecoding/nupeek
  15. 15. Keeping Your Symbols TFS Build System  Can store source, binaries and symbols  Good blog post: http://bit.ly/TFSSourceSymbols
  16. 16. My Goal Move from CruiseControl.NET to TFS Builds Use TFS Build Management  For Binaries Symbols  On All QA Builds with retention for 2-3 months All Release Builds with retention as long as they are in use.

×