diff options
| author | Zachary Turner <zturner@google.com> | 2017-07-07 05:04:36 +0000 |
|---|---|---|
| committer | Zachary Turner <zturner@google.com> | 2017-07-07 05:04:36 +0000 |
| commit | 6c4bfba8f3e2f08f5b42f8a18c3ab0d5a3f5e23c (patch) | |
| tree | 28248d3a8bf2dd6fcff2043da577e40166fc07e7 /llvm/test/DebugInfo | |
| parent | 41f02a9960c3bc36190dae149e9616d8a872a715 (diff) | |
| download | bcm5719-llvm-6c4bfba8f3e2f08f5b42f8a18c3ab0d5a3f5e23c.tar.gz bcm5719-llvm-6c4bfba8f3e2f08f5b42f8a18c3ab0d5a3f5e23c.zip | |
[PDB] Teach libpdb to write DBI Stream ECNames.
Based strictly on the name, this seems to have something to do
width edit & continue. The goal of this patch has nothing to do
with supporting edit and continue though. msvc link.exe writes
very basic information into this area even when *not* compiling
with support for E&C, and so the goal here is to bring lld-link
to parity. Since we cannot know what assumptions standard tools
make about the content of PDB files, we need to be as close as
possible.
This ECNames data structure is a standard PDB string hash table.
link.exe puts a single string into this hash table, which is the
full path to the PDB file on disk. It then references this string
from the module descriptor for the compiler generated `* Linker *`
module.
With this patch, lld-link will generate the exact same sequence of
bytes as MSVC link for this subsection for a given object file
input (as reported by `llvm-pdbutil bytes -ec`).
llvm-svn: 307356
Diffstat (limited to 'llvm/test/DebugInfo')
| -rw-r--r-- | llvm/test/DebugInfo/PDB/pdbdump-headers.test | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/llvm/test/DebugInfo/PDB/pdbdump-headers.test b/llvm/test/DebugInfo/PDB/pdbdump-headers.test index c3eb9bdb8b7..1887af2e826 100644 --- a/llvm/test/DebugInfo/PDB/pdbdump-headers.test +++ b/llvm/test/DebugInfo/PDB/pdbdump-headers.test @@ -67,9 +67,11 @@ ALL-NEXT: ============================================================ ALL-NEXT: Mod 0000 | Name: `d:\src\llvm\test\DebugInfo\PDB\Inputs\empty.obj`: ALL-NEXT: Obj: `d:\src\llvm\test\DebugInfo\PDB\Inputs\empty.obj`: ALL-NEXT: debug stream: 12, # files: 1, has ec info: false +ALL-NEXT: pdb file ni: 0 ``, src file ni: 0 `` ALL-NEXT: Mod 0001 | Name: `* Linker *`: ALL-NEXT: Obj: ``: ALL-NEXT: debug stream: 14, # files: 0, has ec info: false +ALL-NEXT: pdb file ni: 1 `{{.*empty.pdb}}`, src file ni: 0 `` ALL: Files ALL-NEXT: ============================================================ ALL-NEXT: Mod 0000 | `d:\src\llvm\test\DebugInfo\PDB\Inputs\empty.obj`: @@ -568,147 +570,195 @@ BIG-NEXT: ============================================================ BIG-NEXT: Mod 0000 | Name: `D:\src\llvm\test\tools\llvm-symbolizer\pdb\Inputs\test.obj`: BIG-NEXT: Obj: `D:\src\llvm\test\tools\llvm-symbolizer\pdb\Inputs\test.obj`: BIG-NEXT: debug stream: 12, # files: 1, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0001 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\_cpu_disp_.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 14, # files: 14, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0002 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\_initsect_.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 15, # files: 19, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0003 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\_sehprolg4_.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 16, # files: 1, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 1 `f:\dd\vctools\crt\vcstartup\src\eh\i386\sehprolg4.asm` BIG-NEXT: Mod 0004 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\_chandler4gs_.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 17, # files: 14, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0005 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\_secchk_.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 18, # files: 14, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0006 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\gs_cookie.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 19, # files: 9, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0007 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\gs_report.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 20, # files: 14, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0008 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\gs_support.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 21, # files: 10, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0009 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\checkcfg.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 22, # files: 14, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0010 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\guard_support.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 23, # files: 10, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0011 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\loadcfg.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 24, # files: 9, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0012 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\dyn_tls_dtor.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 25, # files: 11, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0013 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\dyn_tls_init.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 26, # files: 10, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0014 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\matherr_detection.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 27, # files: 1, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0015 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\ucrt_detection.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 28, # files: 1, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0016 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\argv_mode.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 29, # files: 1, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0017 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\commit_mode.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 30, # files: 1, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0018 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\default_local_stdio_options.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 31, # files: 24, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0019 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\denormal_control.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 32, # files: 1, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0020 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\env_mode.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 33, # files: 1, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0021 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\file_mode.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 34, # files: 1, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0022 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\invalid_parameter_handler.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 35, # files: 1, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0023 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\matherr.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 36, # files: 2, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0024 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\new_mode.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 37, # files: 1, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0025 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\thread_locale.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 38, # files: 1, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0026 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\tncleanup.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 39, # files: 21, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0027 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\exe_main.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 40, # files: 26, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0028 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\initializers.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 41, # files: 20, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0029 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\utility.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 42, # files: 20, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0030 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\ucrt_stubs.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 43, # files: 1, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0031 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\utility_desktop.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 44, # files: 20, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0032 | Name: `f:\dd\vctools\crt\vcstartup\build\md\msvcrt_kernel32\obj1r\i386\default_precision.obj`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\MSVCRT.lib`: BIG-NEXT: debug stream: 45, # files: 20, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0033 | Name: `Import:KERNEL32.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\WI3CF2~1\10\Lib\10.0.10586.0\um\x86\kernel32.lib`: BIG-NEXT: debug stream: 47, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0034 | Name: `KERNEL32.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\WI3CF2~1\10\Lib\10.0.10586.0\um\x86\kernel32.lib`: BIG-NEXT: debug stream: 46, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0035 | Name: `Import:VCRUNTIME140.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\vcruntime.lib`: BIG-NEXT: debug stream: 49, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0036 | Name: `VCRUNTIME140.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\MI0E91~1.0\VC\LIB\vcruntime.lib`: BIG-NEXT: debug stream: 48, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0037 | Name: `Import:api-ms-win-crt-stdio-l1-1-0.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\WI3CF2~1\10\Lib\10.0.10586.0\ucrt\x86\ucrt.lib`: BIG-NEXT: debug stream: 59, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0038 | Name: `api-ms-win-crt-stdio-l1-1-0.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\WI3CF2~1\10\Lib\10.0.10586.0\ucrt\x86\ucrt.lib`: BIG-NEXT: debug stream: 58, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0039 | Name: `Import:api-ms-win-crt-runtime-l1-1-0.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\WI3CF2~1\10\Lib\10.0.10586.0\ucrt\x86\ucrt.lib`: BIG-NEXT: debug stream: 57, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0040 | Name: `api-ms-win-crt-runtime-l1-1-0.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\WI3CF2~1\10\Lib\10.0.10586.0\ucrt\x86\ucrt.lib`: BIG-NEXT: debug stream: 56, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0041 | Name: `Import:api-ms-win-crt-math-l1-1-0.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\WI3CF2~1\10\Lib\10.0.10586.0\ucrt\x86\ucrt.lib`: BIG-NEXT: debug stream: 55, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0042 | Name: `api-ms-win-crt-math-l1-1-0.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\WI3CF2~1\10\Lib\10.0.10586.0\ucrt\x86\ucrt.lib`: BIG-NEXT: debug stream: 54, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0043 | Name: `Import:api-ms-win-crt-locale-l1-1-0.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\WI3CF2~1\10\Lib\10.0.10586.0\ucrt\x86\ucrt.lib`: BIG-NEXT: debug stream: 53, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0044 | Name: `api-ms-win-crt-locale-l1-1-0.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\WI3CF2~1\10\Lib\10.0.10586.0\ucrt\x86\ucrt.lib`: BIG-NEXT: debug stream: 52, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0045 | Name: `Import:api-ms-win-crt-heap-l1-1-0.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\WI3CF2~1\10\Lib\10.0.10586.0\ucrt\x86\ucrt.lib`: BIG-NEXT: debug stream: 51, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0046 | Name: `api-ms-win-crt-heap-l1-1-0.dll`: BIG-NEXT: Obj: `C:\PROGRA~2\WI3CF2~1\10\Lib\10.0.10586.0\ucrt\x86\ucrt.lib`: BIG-NEXT: debug stream: 50, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 0 ``, src file ni: 0 `` BIG-NEXT: Mod 0047 | Name: `* Linker *`: BIG-NEXT: Obj: ``: BIG-NEXT: debug stream: 60, # files: 0, has ec info: false +BIG-NEXT: pdb file ni: 55 `{{.*test.pdb}}`, src file ni: 0 `` BIG: Files BIG-NEXT: ============================================================ BIG-NEXT: Mod 0000 | `D:\src\llvm\test\tools\llvm-symbolizer\pdb\Inputs\test.obj`: |

