build: add Source Link to embed GitHub source mappings in PDBs#40055
Merged
build: add Source Link to embed GitHub source mappings in PDBs#40055
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds Source Link support to the Windows CMake build so generated PDBs can map local source paths to GitHub URLs, enabling debuggers to fetch exact source files for a given commit.
Changes:
- Generate a
sourcelink.jsonfile during CMake configure with document mappings toraw.githubusercontent.comfor the currentCOMMIT_HASH. - Pass
/SOURCELINK:<json>to the MSVC linker for DLL and EXE targets.
26d09cc to
51a0268
Compare
OneBlue
previously approved these changes
Apr 6, 2026
CMakeLists.txt
Outdated
|
|
||
| # Generate Source Link JSON so debuggers can fetch source from GitHub | ||
| set(SOURCELINK_JSON "${GENERATED_DIR}/sourcelink.json") | ||
| file(WRITE "${SOURCELINK_JSON}" "{\"documents\":{\"${CMAKE_SOURCE_DIR}/*\":\"https://raw.githubusercontent.com/microsoft/WSL/${COMMIT_HASH}/*\"}}") |
Collaborator
There was a problem hiding this comment.
nit: I recommend doing this only for pipeline builds. We could use PIPELINE_BUILD_ID to detect that we're inside a pipeline
Only generate sourcelink.json and pass /SOURCELINK to the linker when PIPELINE_BUILD_ID is defined (i.e. during CI pipeline builds). This avoids unnecessary Source Link artifacts in local developer builds. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
OneBlue
approved these changes
Apr 6, 2026
Member
Author
|
Hey @benhillis 👋 — This PR is nearly ready to merge (clean mergeable state, all CI green). There's 1 unresolved review thread from @OneBlue suggesting Source Link should only be enabled for pipeline builds (using \PIPELINE_BUILD_ID\ detection). Could you address that to unblock this? |
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.
When a debugger (Visual Studio, WinDbg, VS Code) loads a PDB and needs to show source, it reads this mapping, substitutes the local build path with the URL, and fetches the exact source file from the server.