Symbol server support, update debug tools#56
Open
jonwis wants to merge 3 commits into
Open
Conversation
- Session/DIAAdapter: when no explicit PDB path is given, use DIA's loadDataForExe with a symsrv-style search path to locate/download the PDB automatically. Session.Create() accepts an empty pdbPath when SessionOptions.SymbolServerSearchPath is set. - SessionOptions: new SymbolServerSearchPath property. - GUI/Advanced Options expander: new Symbol Server section with a checkbox to enable/disable the feature, a multi-line TextBox for symsrv paths (one per line, joined with ';'), and the OK button logic updated to allow opening without a local PDB when a symbol server is configured. - Settings (AppSettings / IAppSettings): persisted JSON settings at %LocalAppData%\SizeBench\settings.json; stores UseSymbolServer and the list of symbol server paths. Registered as a Windsor singleton. - NuGet: replace checked-in ExternalDependencies/DIA/msdia140.dll with Microsoft.Debugging.Platform.DbgEng (20260319.1511.0) which ships an up-to-date msdia140.dll. Upgrade DbgModelApiXtn and SymSrv to the same version; SymSrv 20260319 is the auth-capable build (2 MB) that works with AAD-protected servers like symweb.azurefd.net. DbgX kept at 20241011.1.0 (last version targeting net8.0-windows). - Directory.Build.targets: copy msdia140.dll from the DbgEng NuGet package content rather than the now-deleted checked-in copy. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
jonwis
added a commit
to jonwis/SizeBench
that referenced
this pull request
Jun 11, 2026
Brings PR microsoft#56 up to date with main (microsoft#55, microsoft#57, microsoft#58 incl. the DIA update and net8->net10 upgrade). Conflict resolutions: - DIAAdapter: keep the loadFromSource delegate (symbol-server path) but route the PDB path through main's new prefetching loadDataFromPdbEx on IDiaDataSourceEx2. - msdia140.dll: keep main's updated checked-in binary (needed for IDiaDataSourceEx2) and layer PR microsoft#56's symsrv.dll drop on top for symbol-server support. - Directory.Packages.props / GUI.csproj: union of both sides, newer versions win. - IDE0031: use C# 14 null-conditional assignment for _appSettings?.UseSymbolServer.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why is this change being made?
Analyzing already-deployed binaries from build labs requires finding the PDBs from the build, downloading them, then referencing them in startup. The symbol server APIs can just do all that, making "examine binary in app directory" just that much easier.
Briefly summarize what changed
How was the change tested?
%windir%\system32and see that symbols resolve correctly