Skip to content

dll files contain original/invalid path to pdb matching build directory #4011

Open
@omajid

Description

@omajid

Describe the Bug

.dll files in .NET SDK/Runtime contain a full path to pdb associated with it, except path corresponds to the original build location, and doesn't match the pdb location when end users install the .NET SDK.

If the path actually matters, shouldn't there be a way to set it to the actual pdb location/path on the end-user systems?

If the path doesn't matter, should it exist at all? Maybe it could just be a file name without the full path?

This also affects reproducibility, because building .NET in a different location changes the built SDK.

Steps to Reproduce

$ objdump -x /usr/lib64/dotnet/shared/Microsoft.NETCore.App/8.0.0/System.Collections.dll
...
There is a debug directory in .text at 0x180010790

Type                Size     Rva      Offset
 21         Unknown 0000011c 00014818 00004818
  2        CodeView 000000ae 000106b8 000006b8
(format RSDS signature ac2db980afaca432289ed9f469b37696 age 1 pdb /builddir/build/BUILD/dotnet-8.0.0/src/runtime/artifacts/source-build/self/src/artifacts/obj/System.Collections/Release/net8.0/System.Collections.pdb)
 19         Unknown 00000027 00010768 00000768
 16           Repro 00000000 00000000 00000000
...

Note the path starting with /builddir/build/BUILD/. That's the location the build server used to build NET SDK. That location doesn't exist on my machine.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-product-experienceImprovements in the end-user's product experience

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions