[llvm-bugs] [Bug 52028] New: lld-link ignoring /DEBUGTYPE:PDATA, FIXUP

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Oct 1 00:44:03 PDT 2021


https://bugs.llvm.org/show_bug.cgi?id=52028

            Bug ID: 52028
           Summary: lld-link ignoring /DEBUGTYPE:PDATA,FIXUP
           Product: lld
           Version: unspecified
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: COFF
          Assignee: unassignedbugs at nondot.org
          Reporter: julian.dietrich at ubisoft.com
                CC: llvm-bugs at lists.llvm.org

Created attachment 25312
  --> https://bugs.llvm.org/attachment.cgi?id=25312&action=edit
MSVC & LLVM Debug Streams in comparison after passing "/DEBUGTYPE:PDATA"

MSVC link.exe has an option called /DEBUGTYPE (see
https://docs.microsoft.com/en-us/cpp/build/reference/debugtype-debug-info-options?view=msvc-160)
which can embed certain sections from the generated PE file into the PDB.
The data is embedded as a so called "Debug Stream" which is simply a raw copy
of the section in the PE file.
This option makes it possible to unwind callstacks in minidumps without the
need of having the original PE file on disk.
Below you can see a cropped comparison between lld-link and link debug-streams:


lld-link debug streams:

*** DEBUG STREAMS

Stream: SECTIONHEADERS(9)
2E 74 65 78 74 00 00 00 - 86 5A 00 00 00 10 00 00 - 00 5C 00 00 00 04 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 20 00 00 60 |
.text....Z.......\.................. ..`
2E 72 64 61 74 61 00 00 - BC 38 00 00 00 70 00 00 - 00 3A 00 00 00 60 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 40 00 00 40 |
.rdata..╝8...p...:...`.............. at ..@
2E 64 61 74 61 00 00 00 - 30 07 00 00 00 B0 00 00 - 00 02 00 00 00 9A 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 40 00 00 C0 |
.data...0....░...................... at ..└
2E 70 64 61 74 61 00 00 - E0 0A 00 00 00 C0 00 00 - 00 0C 00 00 00 9C 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 40 00 00 40 |
.pdata..Ó....└...................... at ..@
2E 30 30 63 66 67 00 00 - 28 00 00 00 00 D0 00 00 - 00 02 00 00 00 A8 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 40 00 00 40 |
.00cfg..(....ð.......¿.............. at ..@
2E 67 65 68 63 6F 6E 74 - 08 00 00 00 00 E0 00 00 - 00 02 00 00 00 AA 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 40 00 00 40 |
.gehcont.....Ó.......¬.............. at ..@
2E 76 6F 6C 74 62 6C 00 - 1B 00 00 00 00 F0 00 00 - 00 02 00 00 00 AC 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 |
.voltbl......­.......¼..................
2E 72 73 72 63 00 00 00 - A8 01 00 00 00 00 01 00 - 00 02 00 00 00 AE 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 40 00 00 40 |
.rsrc...¿............«.............. at ..@
2E 72 65 6C 6F 63 00 00 - 68 00 00 00 00 10 01 00 - 00 02 00 00 00 B0 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 40 00 00 42 |
.reloc..h............░.............. at ..B
Summary :
        No of Elems = 9
        Sizeof(Elem) = 40


link debug streams:

*** DEBUG STREAMS

Stream: XDATA(4304)
01 | .
0D | .
05 | .
05 | .
...
00 | .
00 | .
Summary :
        No of Elems = 4304
        Sizeof(Elem) = 1

Stream: PDATA(3360)
00 | .
10 | .
00 | .
00 | .
1F | .
...
D3 | Ó
00 | .
00 | .
Summary :
        No of Elems = 3360
        Sizeof(Elem) = 1

Stream: SECTIONHEADERS(6)
2E 74 65 78 74 00 00 00 - 75 7E 00 00 00 10 00 00 - 00 80 00 00 00 04 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 20 00 00 60 |
.text...u~.......................... ..`
2E 72 64 61 74 61 00 00 - 22 5A 00 00 00 90 00 00 - 00 5C 00 00 00 84 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 40 00 00 40 |
.rdata.."Z.......\.................. at ..@
2E 64 61 74 61 00 00 00 - 58 07 00 00 00 F0 00 00 - 00 02 00 00 00 E0 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 40 00 00 C0 |
.data...X....ð.......à.............. at ..À
2E 70 64 61 74 61 00 00 - 20 0D 00 00 00 00 01 00 - 00 0E 00 00 00 E2 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 40 00 00 40 | .pdata..
............â.............. at ..@
2E 72 73 72 63 00 00 00 - E0 01 00 00 00 10 01 00 - 00 02 00 00 00 F0 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 40 00 00 40 |
.rsrc...à............ð.............. at ..@
2E 72 65 6C 6F 63 00 00 - C4 00 00 00 00 20 01 00 - 00 02 00 00 00 F2 00 00 -
00 00 00 00 00 00 00 00 - 00 00 00 00 40 00 00 42 | .reloc..Ä....
.......ò.............. at ..B
Summary :
        No of Elems = 6
        Sizeof(Elem) = 40


Full output of Dia2Dump has been attached to this report.
The data can be extracted from PDB files by compiling Dia2Dump and callin it
with the following command line: "Dia2Dump -dbg TestProject.pdb > dbg".

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20211001/0dc21c18/attachment.html>


More information about the llvm-bugs mailing list