Closed Bug 1884231 Opened 1 year ago Closed 1 year ago

Missing source server information in Windows PDBs (build jobs aren't finding pdbstr anymore, not creating srcsrv streams)

Categories

(Firefox Build System :: Toolchains, defect)

All
Windows
defect

Tracking

(thunderbird_esr115 unaffected, firefox-esr115 unaffected, firefox123 unaffected, firefox124 unaffected, firefox125+ fixed)

RESOLVED FIXED
125 Branch
Tracking Status
thunderbird_esr115 --- unaffected
firefox-esr115 --- unaffected
firefox123 --- unaffected
firefox124 --- unaffected
firefox125 + fixed

People

(Reporter: mstange, Assigned: glandium)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

After bug 1881381, Firefox Windows builds which were built in CI (and for which PDB symbols are on the symbol server) don't show source code in Visual Studio when you debug them. This is because the PDB files no longer contain a srcsrv mapping. This mapping only gets created when pdbstr is available, and build jobs after bug 1881381 contain this line:

INFO -  checking for pdbstr... not found

(Local developer Windows builds still show source code during debugging as usual.)

[Tracking Requested - why for this release]: Crash debugging for Windows crashes will be much harder until this is fixed

Flags: needinfo?(mh+mozilla)

MSVC 17 Preview manifest (https://download.visualstudio.microsoft.com/download/pr/04b720b4-1116-49de-8ee1-0162ed8e3f57/2551360f5c13946f09740dc5a712bcf693240a07ce3e8e2dca2cb2be712e0585/VisualStudioPreview.vsman) doesn't have it either. But the file is in the Windows SDK iso at https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/, and the Windows SDK installer from that page installs it, but the real VS Installer doesn't.

It shouldn't be too hard to write our own Rust program that implements what pdbstr does. If getting the official Microsoft binary is too hard, this might be an alternative.

Might as well add that to dump_syms rather than write an entirely new tool. It would make sense to make dump_syms handle the objcopy part of symbolstore.py as well, similarly. That being said, I'm testing a hack to unblock the situation quickly.

Flags: needinfo?(mh+mozilla)
Blocks: 1881382

The Visual Studio manifest for VS 2022 doesn't contain the SDK
Debuggers, unlike the standalone Windows SDK. This seems like a mistake
on Microsoft's part, and until we either dump the dependency on the tool
we use from there or it's fixed, we add it manually, copying the
relevant payloads information from the VS 2019 manifest.

To avoid the same from happening again in the future (like, if we update
the yaml with the command in its header, those will go away), we also
make pdbstr non-optional on CI, so that builds would fail if that
happens.

Assignee: nobody → mh+mozilla
Status: NEW → ASSIGNED
Pushed by mh@glandium.org: https://hg.mozilla.org/integration/autoland/rev/7e3d716f27d4 Reinstate SDK Debuggers in the VS 2022 toolchain. r=firefox-build-system-reviewers
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 125 Branch
Regressions: 1884951
Regressions: 1884902
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: