microsoft / WindowsAppSDK

The Windows App SDK empowers all Windows desktop apps with modern Windows UI, APIs, and platform features, including back-compat support, shipped via NuGet.
https://docs.microsoft.com/windows/apps/windows-app-sdk/
MIT License
3.85k stars 323 forks source link

PDBs for MRT Core are missing source server information #4633

Closed evelynwu-msft closed 2 months ago

evelynwu-msft commented 3 months ago

Describe the bug

The PDBs for MRT Core (both Microsoft.Windows.ApplicationModel.Resources.dll and MRM.dll) are missing source server information for the source files. As a result, when debugging MRT Core code developers are required to manually obtain the matching source code (e.g. cloning this repository) and point their debugger at it. Additionally, the internal AzDO repo is what's pointed to by the PDB rather than this Github repo, so even if the expected source server entries were present non-Microsoft devs would still be unable to take advantage of that.

Steps to reproduce the bug

  1. Install Debugging Tools for Windows
  2. Download the PDBs for MRT Core (e.g. c:\Program Files (x86)\Windows Kits\10\Debuggers\x64\srcsrv>symchk /v "C:\Program Files\WindowsApps\Microsoft.WindowsAppRuntime.1.6-preview1_6000.219.2254.0_x64__8wekyb3d8bbwe\Microsoft.Windows.ApplicationModel.Resources.dll" /s https://msdl.microsoft.com/download/symbols /oc c:\symbols\)
  3. Extract the srcsrv stream from the PDBs downloaded in step 2: c:\Program Files (x86)\Windows Kits\10\Debuggers\x64\srcsrv>pdbstr -r -p:"c:\symbols\Microsoft.Windows.ApplicationModel.Resources.pdb" -i:c:\Microsoft.Windows.ApplicationModel.Resources.txt -s:srcsrv

Expected behavior

The srcsrv streams should contain source information entries for every source file in https://github.com/microsoft/WindowsAppSDK/tree/main/dev/MRTCore/mrt/.

Screenshots

No response

NuGet package version

Windows App SDK 1.6 Experimental 2: 1.6.240701003-experimental2

Packaging type

No response

Windows version

No response

IDE

No response

Additional context

The actual srcsrv streams for Microsoft.Windows.ApplicationModel.Resources.dll and MRM.dll.

For comparison, this is the stream for Microsoft.WindowsAppRuntime.Insights.Resource.dll which contains the expected information.

evelynwu-msft commented 3 months ago

There's a very real possibility that the presence of a srcsrv stream overrides the Source Link information encoded in the stream sourcelink$1. (Unfortunately, the Source Link information also points at the internal AzDO server.)