-
-
Notifications
You must be signed in to change notification settings - Fork 14.8k
Missing debug information about type definitions in PDB #98678
Copy link
Copy link
Closed
Labels
A-debuginfoArea: Debugging information in compiled programs (DWARF, PDB, etc.)Area: Debugging information in compiled programs (DWARF, PDB, etc.)C-bugCategory: This is a bug.Category: This is a bug.O-windows-msvcToolchain: MSVC, Operating system: WindowsToolchain: MSVC, Operating system: WindowsT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Metadata
Metadata
Assignees
Labels
A-debuginfoArea: Debugging information in compiled programs (DWARF, PDB, etc.)Area: Debugging information in compiled programs (DWARF, PDB, etc.)C-bugCategory: This is a bug.Category: This is a bug.O-windows-msvcToolchain: MSVC, Operating system: WindowsToolchain: MSVC, Operating system: WindowsT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
It seems like rustc does not generate enough information about types in PDB debug information. Particularly, the PDB IPI Stream contains invalid
LF_UDT_MOD_SRC_LINEentries without source file information. Due to this issue, from the debugger's perspective, it is impossible to check whether a certain type corresponds to Rust source code or not. This affects both user-defined and stdlib types.Steps to reproduce
rusttest::MyTypelocated inmain.rsllvm-pdbutil.exe dump -all main.pdb > main.pdb.txtcommandrusttest::MyTypeinformation in the TPI Stream and IPI Stream sectionsIt may look as follows:
Note, in the corresponding entry of IPI Stream (
udt = 0x107A) we havefile = 1, which refers to an unknown file.In comparison, this is an example of correct information generated by
cl.exewhen compiling a similar C++ program: