diff options
Diffstat (limited to 'test/COFF/pdb.test')
-rw-r--r-- | test/COFF/pdb.test | 160 |
1 files changed, 123 insertions, 37 deletions
diff --git a/test/COFF/pdb.test b/test/COFF/pdb.test index a4cd4f7c35b3..dad6de25db58 100644 --- a/test/COFF/pdb.test +++ b/test/COFF/pdb.test @@ -1,13 +1,15 @@ # RUN: yaml2obj < %p/Inputs/pdb1.yaml > %t1.obj # RUN: yaml2obj < %p/Inputs/pdb2.yaml > %t2.obj +# RUN: rm -f %t.dll %t.pdb # RUN: lld-link /debug /pdb:%t.pdb /dll /out:%t.dll /entry:main /nodefaultlib \ # RUN: %t1.obj %t2.obj # RUN: llvm-pdbutil pdb2yaml -stream-metadata -stream-directory -pdb-stream \ # RUN: -dbi-stream -ipi-stream -tpi-stream %t.pdb | FileCheck %s -# RUN: llvm-pdbutil dump -modules -section-map -section-contribs \ -# RUN: -types -ids %t.pdb | FileCheck -check-prefix RAW %s +# RUN: llvm-pdbutil dump -modules -section-map -section-contribs -section-headers \ +# RUN: -publics -public-extras -types -ids -type-extras -id-extras %t.pdb \ +# RUN: | FileCheck -check-prefix RAW %s # CHECK: MSF: # CHECK-NEXT: SuperBlock: @@ -117,86 +119,170 @@ RAW: Modules RAW-NEXT: ============================================================ -RAW-NEXT: Mod 0000 | Name: `{{.*}}pdb.test.tmp1.obj`: +RAW-NEXT: Mod 0000 | `{{.*}}pdb.test.tmp1.obj`: RAW-NEXT: Obj: `{{.*}}pdb.test.tmp1.obj`: RAW-NEXT: debug stream: 9, # files: 1, has ec info: false RAW-NEXT: pdb file ni: 0 ``, src file ni: 0 `` -RAW-NEXT: Mod 0001 | Name: `{{.*}}pdb.test.tmp2.obj`: +RAW-NEXT: Mod 0001 | `{{.*}}pdb.test.tmp2.obj`: RAW-NEXT: Obj: `{{.*}}pdb.test.tmp2.obj`: RAW-NEXT: debug stream: 10, # files: 1, has ec info: false RAW-NEXT: pdb file ni: 0 ``, src file ni: 0 `` -RAW-NEXT: Mod 0002 | Name: `* Linker *`: +RAW-NEXT: Mod 0002 | `* Linker *`: RAW-NEXT: Obj: ``: RAW-NEXT: debug stream: 11, # files: 0, has ec info: false RAW-NEXT: pdb file ni: 1 `{{.*pdb.test.tmp.pdb}}`, src file ni: 0 `` RAW: Types (TPI Stream) RAW-NEXT: ============================================================ RAW-NEXT: Showing 5 records -RAW-NEXT: 0x1000 | LF_ARGLIST [size = 8] -RAW-NEXT: 0x1001 | LF_PROCEDURE [size = 16] +RAW-NEXT: 0x1000 | LF_ARGLIST [size = 8, hash = 0xEC0] +RAW-NEXT: 0x1001 | LF_PROCEDURE [size = 16, hash = 0x7BC] RAW-NEXT: return type = 0x0074 (int), # args = 0, param list = 0x1000 RAW-NEXT: calling conv = cdecl, options = None -RAW-NEXT: 0x1002 | LF_POINTER [size = 12] +RAW-NEXT: 0x1002 | LF_POINTER [size = 12, hash = 0x884] RAW-NEXT: referent = 0x1001, mode = pointer, opts = None, kind = ptr64 -RAW-NEXT: 0x1003 | LF_ARGLIST [size = 12] +RAW-NEXT: 0x1003 | LF_ARGLIST [size = 12, hash = 0x936] RAW-NEXT: <no type>: `` -RAW-NEXT: 0x1004 | LF_PROCEDURE [size = 16] +RAW-NEXT: 0x1004 | LF_PROCEDURE [size = 16, hash = 0x852] RAW-NEXT: return type = 0x0074 (int), # args = 0, param list = 0x1003 RAW-NEXT: calling conv = cdecl, options = None RAW: Types (IPI Stream) RAW-NEXT: ============================================================ RAW-NEXT: Showing 12 records -RAW-NEXT: 0x1000 | LF_FUNC_ID [size = 20] +RAW-NEXT: 0x1000 | LF_FUNC_ID [size = 20, hash = 0x330] RAW-NEXT: name = main, type = 0x1004, parent scope = <no type> -RAW-NEXT: 0x1001 | LF_FUNC_ID [size = 16] +RAW-NEXT: 0x1001 | LF_FUNC_ID [size = 16, hash = 0x120] RAW-NEXT: name = foo, type = 0x1001, parent scope = <no type> -RAW-NEXT: 0x1002 | LF_STRING_ID [size = 16] ID: <no type>, String: D:\b -RAW-NEXT: 0x1003 | LF_STRING_ID [size = 36] ID: <no type>, String: C:\vs14\VC\BIN\amd64\cl.exe -RAW-NEXT: 0x1004 | LF_STRING_ID [size = 260] ID: <no type>, String: -Z7 -c -MT -IC:\vs14\VC\INCLUDE -IC:\vs14\VC\ATLMFC\INCLUDE -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt" -I"C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\shared" -RAW-NEXT: 0x1005 | LF_SUBSTR_LIST [size = 12] +RAW-NEXT: 0x1002 | LF_STRING_ID [size = 16, hash = 0x757] ID: <no type>, String: D:\b +RAW-NEXT: 0x1003 | LF_STRING_ID [size = 36, hash = 0xC3A] ID: <no type>, String: C:\vs14\VC\BIN\amd64\cl.exe +RAW-NEXT: 0x1004 | LF_STRING_ID [size = 260, hash = 0x433] ID: <no type>, String: -Z7 -c -MT -IC:\vs14\VC\INCLUDE -IC:\vs14\VC\ATLMFC\INCLUDE -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt" -I"C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\shared" +RAW-NEXT: 0x1005 | LF_SUBSTR_LIST [size = 12, hash = 0x759] RAW-NEXT: 0x1004: `-Z7 -c -MT -IC:\vs14\VC\INCLUDE -IC:\vs14\VC\ATLMFC\INCLUDE -I"C:\Program Files (x86)\Windows Kits\10\include\10.0.10150.0\ucrt" -I"C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\shared"` -RAW-NEXT: 0x1006 | LF_STRING_ID [size = 132] ID: 0x1005, String: -I"C:\Program Files (x86)\Windows Kits\8.1\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\winrt" -TC -X -RAW-NEXT: 0x1007 | LF_STRING_ID [size = 24] ID: <no type>, String: ret42-main.c -RAW-NEXT: 0x1008 | LF_STRING_ID [size = 24] ID: <no type>, String: D:\b\vc140.pdb -RAW-NEXT: 0x1009 | LF_BUILDINFO [size = 28] +RAW-NEXT: 0x1006 | LF_STRING_ID [size = 132, hash = 0xF57] ID: 0x1005, String: -I"C:\Program Files (x86)\Windows Kits\8.1\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\winrt" -TC -X +RAW-NEXT: 0x1007 | LF_STRING_ID [size = 24, hash = 0x2D1] ID: <no type>, String: ret42-main.c +RAW-NEXT: 0x1008 | LF_STRING_ID [size = 24, hash = 0xB8B] ID: <no type>, String: D:\b\vc140.pdb +RAW-NEXT: 0x1009 | LF_BUILDINFO [size = 28, hash = 0xA8C] RAW-NEXT: 0x1002: `D:\b` RAW-NEXT: 0x1003: `C:\vs14\VC\BIN\amd64\cl.exe` RAW-NEXT: 0x1007: `ret42-main.c` RAW-NEXT: 0x1008: `D:\b\vc140.pdb` RAW-NEXT: 0x1006: ` -I"C:\Program Files (x86)\Windows Kits\8.1\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\winrt" -TC -X` -RAW-NEXT: 0x100A | LF_STRING_ID [size = 20] ID: <no type>, String: ret42-sub.c -RAW-NEXT: 0x100B | LF_BUILDINFO [size = 28] +RAW-NEXT: 0x100A | LF_STRING_ID [size = 20, hash = 0x39C] ID: <no type>, String: ret42-sub.c +RAW-NEXT: 0x100B | LF_BUILDINFO [size = 28, hash = 0xAD7] RAW-NEXT: 0x1002: `D:\b` RAW-NEXT: 0x1003: `C:\vs14\VC\BIN\amd64\cl.exe` RAW-NEXT: 0x100A: `ret42-sub.c` RAW-NEXT: 0x1008: `D:\b\vc140.pdb` RAW-NEXT: 0x1006: ` -I"C:\Program Files (x86)\Windows Kits\8.1\include\um" -I"C:\Program Files (x86)\Windows Kits\8.1\include\winrt" -TC -X` +RAW: Public Symbols +RAW-NEXT: ============================================================ +RAW-NEXT: Publics Header +RAW-NEXT: sym hash = 556, thunk table addr = 0000:0000 +RAW-NEXT: GSI Header +RAW-NEXT: sig = 0xFFFFFFFF, hdr = 0xF12F091A, hr size = 16, num buckets = 524 +RAW-NEXT: Records +RAW-NEXT: 20 | S_PUB32 [size = 20] `main` +RAW-NEXT: flags = function, addr = 0002:0000 +RAW-NEXT: 0 | S_PUB32 [size = 20] `foo` +RAW-NEXT: flags = function, addr = 0002:0016 +RAW-NOT: S_PUB32 +RAW-NEXT: Hash Entries +RAW-NEXT: off = 21, refcnt = 1 +RAW-NEXT: off = 1, refcnt = 1 +RAW-NEXT: Hash Buckets +RAW-NEXT: 0x00000000 +RAW-NEXT: 0x0000000c +RAW-NEXT: Address Map +RAW-NEXT: off = 20 +RAW-NEXT: off = 0 +RAW: Section Headers +RAW-NEXT: ============================================================ +RAW: SECTION HEADER #1 +RAW-NEXT: .pdata name +RAW-NEXT: virtual size +RAW-NEXT: 1000 virtual address +RAW-NEXT: 200 size of raw data +RAW-NEXT: 400 file pointer to raw data +RAW-NEXT: 0 file pointer to relocation table +RAW-NEXT: 0 file pointer to line numbers +RAW-NEXT: 0 number of relocations +RAW-NEXT: 0 number of line numbers +RAW-NEXT: 40000040 flags +RAW-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA +RAW-NEXT: IMAGE_SCN_MEM_READ +RAW: SECTION HEADER #2 +RAW-NEXT: .text name +RAW-NEXT: virtual size +RAW-NEXT: 2000 virtual address +RAW-NEXT: 200 size of raw data +RAW-NEXT: 600 file pointer to raw data +RAW-NEXT: 0 file pointer to relocation table +RAW-NEXT: 0 file pointer to line numbers +RAW-NEXT: 0 number of relocations +RAW-NEXT: 0 number of line numbers +RAW-NEXT: 60000020 flags +RAW-NEXT: IMAGE_SCN_CNT_CODE +RAW-NEXT: IMAGE_SCN_MEM_EXECUTE +RAW-NEXT: IMAGE_SCN_MEM_READ +RAW: SECTION HEADER #3 +RAW-NEXT: .xdata name +RAW-NEXT: virtual size +RAW-NEXT: 3000 virtual address +RAW-NEXT: 200 size of raw data +RAW-NEXT: 800 file pointer to raw data +RAW-NEXT: 0 file pointer to relocation table +RAW-NEXT: 0 file pointer to line numbers +RAW-NEXT: 0 number of relocations +RAW-NEXT: 0 number of line numbers +RAW-NEXT: 40000040 flags +RAW-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA +RAW-NEXT: IMAGE_SCN_MEM_READ +RAW: SECTION HEADER #4 +RAW-NEXT: .rdata name +RAW-NEXT: virtual size +RAW-NEXT: 4000 virtual address +RAW-NEXT: 200 size of raw data +RAW-NEXT: A00 file pointer to raw data +RAW-NEXT: 0 file pointer to relocation table +RAW-NEXT: 0 file pointer to line numbers +RAW-NEXT: 0 number of relocations +RAW-NEXT: 0 number of line numbers +RAW-NEXT: 40000040 flags +RAW-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA +RAW-NEXT: IMAGE_SCN_MEM_READ +RAW: Original Section Headers +RAW-NEXT: ============================================================ +RAW-NEXT: PDB does not contain the requested image section header type RAW: Section Contributions RAW-NEXT: ============================================================ -RAW-NEXT: SC | mod = 0, 65535:1288, size = 14, data crc = 0, reloc crc = 0 -RAW-NEXT: IMAGE_SCN_CNT_CODE | IMAGE_SCN_ALIGN_16BYTES | IMAGE_SCN_MEM_EXECUTE | -RAW-NEXT: IMAGE_SCN_MEM_READ -RAW-NEXT: SC | mod = 0, 65535:1312, size = 8, data crc = 0, reloc crc = 0 -RAW-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_ALIGN_4BYTES | IMAGE_SCN_MEM_READ -RAW-NEXT: SC | mod = 0, 65535:1320, size = 12, data crc = 0, reloc crc = 0 -RAW-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_ALIGN_4BYTES | IMAGE_SCN_MEM_READ -RAW-NEXT: SC | mod = 1, 65535:1144, size = 6, data crc = 0, reloc crc = 0 -RAW-NEXT: IMAGE_SCN_CNT_CODE | IMAGE_SCN_ALIGN_16BYTES | IMAGE_SCN_MEM_EXECUTE | -RAW-NEXT: IMAGE_SCN_MEM_READ +RAW-NEXT: SC[.pdata] | mod = 0, 0001:0000, size = 12, data crc = 361370162, reloc crc = 0 +RAW-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_ALIGN_4BYTES | IMAGE_SCN_MEM_READ +RAW-NEXT: SC[.text] | mod = 0, 0002:0000, size = 14, data crc = 1682752513, reloc crc = 0 +RAW-NEXT: IMAGE_SCN_CNT_CODE | IMAGE_SCN_ALIGN_16BYTES | IMAGE_SCN_MEM_EXECUTE | +RAW-NEXT: IMAGE_SCN_MEM_READ +RAW-NEXT: SC[.text] | mod = 1, 0002:0016, size = 6, data crc = 2139436471, reloc crc = 0 +RAW-NEXT: IMAGE_SCN_CNT_CODE | IMAGE_SCN_ALIGN_16BYTES | IMAGE_SCN_MEM_EXECUTE | +RAW-NEXT: IMAGE_SCN_MEM_READ +RAW-NEXT: SC[.xdata] | mod = 0, 0003:0000, size = 8, data crc = 264583633, reloc crc = 0 +RAW-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_ALIGN_4BYTES | IMAGE_SCN_MEM_READ +RAW-NEXT: SC[???] | mod = 2, 0004:0000, size = {{[0-9]+}}, data crc = 0, reloc crc = 0 +RAW-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ +RAW-NEXT: SC[???] | mod = 2, 0004:0028, size = {{[0-9]+}}, data crc = 0, reloc crc = 0 +RAW-NEXT: IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_READ +RAW-NOT: SC[ RAW: Section Map RAW-NEXT: ============================================================ -RAW-NEXT: Section 0000 | ovl = 0, group = 0, frame = 0, name = 1 +RAW-NEXT: Section 0000 | ovl = 0, group = 0, frame = 1, name = 65535 RAW-NEXT: class = 65535, offset = 0, size = RAW-NEXT: flags = read | 32 bit addr | selector -RAW-NEXT: Section 0001 | ovl = 1, group = 0, frame = 0, name = 2 +RAW-NEXT: Section 0001 | ovl = 0, group = 0, frame = 2, name = 65535 RAW-NEXT: class = 65535, offset = 0, size = RAW-NEXT: flags = read | execute | 32 bit addr | selector -RAW-NEXT: Section 0002 | ovl = 2, group = 0, frame = 0, name = 3 +RAW-NEXT: Section 0002 | ovl = 0, group = 0, frame = 3, name = 65535 RAW-NEXT: class = 65535, offset = 0, size = RAW-NEXT: flags = read | 32 bit addr | selector -RAW-NEXT: Section 0003 | ovl = 3, group = 0, frame = 0, name = 4 +RAW-NEXT: Section 0003 | ovl = 0, group = 0, frame = 4, name = 65535 RAW-NEXT: class = 65535, offset = 0, size = RAW-NEXT: flags = read | 32 bit addr | selector -RAW-NEXT: Section 0004 | ovl = 4, group = 0, frame = 0, name = 5 +RAW-NEXT: Section 0004 | ovl = 0, group = 0, frame = 5, name = 65535 RAW-NEXT: class = 65535, offset = 0, size = RAW-NEXT: flags = 32 bit addr | absolute addr |