Skip to content

Update DIA to latest - #58

Merged
Austin Lamb (Austin-Lamb) merged 1 commit into
mainfrom
user/austinl/updateDIA
Jul 13, 2026
Merged

Austin Lamb (Austin-Lamb) merged 1 commit into
mainfrom
user/austinl/updateDIA

Conversation

@Austin-Lamb

Copy link
Copy Markdown
Collaborator

Why is this change being made?

DIA has a lot of new features since SizeBench last took an update - for example it has prefetching capabilities that may improve perf, and it has support for MSFZ compressed PDBs.

Picking this up enables SizeBench to read newer PDBs.

Briefly summarize what changed

  • Update DIA to the latest Visual Studio 2026 release (June 2026)
  • Adopt new DIA APIs such as the ability for DIA to detect fastlink PDBs and Portable PDBs so SizeBench does not attempt to analyze things it can't handle anyway.
  • The new DIA adds support for parsing PDBs from Go, as well as a new basic type for ARM scalable vectors, so add minimal support to the parts of SizeBench affected by this.
  • The new DIA can better support C _Atomic so added support for parsing such type names, and I noticed we lacked __restrict nearby, so doing both at once.
  • This version of DIA includes changes for "PDB hardening" where DIA can report E_PDB_CORRUPT in more places which triggers in the SizeBench test suite because we have PDBs generated with symbols from older versions of MASM. So, we tolerate more cases in determining when E_PDB_CORRUPT can be worked around, so the test suite continues to pass.

How was the change tested?

Currently relying on existing test suite. It would be ideal to add some tests for _Atomic and __restrict but for purposes of time invested, I'm skipping that ideal world for now.

PR Checklist

  • Contributor License Agreement (CLA) has been signed. If not, go here and sign the CLA
  • Changes have been validated
  • Documentation updated. Please add or update any docs in the repo as necessary.

@Austin-Lamb
Austin Lamb (Austin-Lamb) merged commit b3b47f2 into main Jul 13, 2026
7 checks passed
Jon Wiswall (jonwis) added a commit to jonwis/SizeBench that referenced this pull request Jul 14, 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants