# RUN: yaml2obj %s -o %t.obj # RUN: rm -f %t.dll %t.pdb # RUN: lld-link /debug /pdbaltpath:test.pdb /dll /out:%t.dll /entry:DllMain %t.obj # RUN: llvm-readobj --coff-debug-directory %t.dll > %t.1.txt # RUN: lld-link /debug /pdbaltpath:test.pdb /dll /out:%t.dll /entry:DllMain %t.obj # RUN: llvm-readobj --coff-debug-directory %t.dll > %t.2.txt # RUN: cat %t.1.txt %t.2.txt | FileCheck %s # RUN: rm -f %t.dll %t.pdb # RUN: lld-link /debug /pdb:%t1.pdb /dll /out:%t.dll /entry:DllMain %t.obj # RUN: llvm-readobj --coff-debug-directory %t.dll > %t.3.txt # RUN: lld-link /debug /pdb:%t2.pdb /dll /out:%t.dll /entry:DllMain %t.obj # RUN: llvm-readobj --coff-debug-directory %t.dll > %t.4.txt # RUN: cat %t.3.txt %t.4.txt | FileCheck --check-prefix TWOPDBS %s # RUN: rm -f %t.dll %t.pdb # RUN: lld-link /Brepro /dll /out:%t.dll /entry:DllMain %t.obj # RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix REPRO %s # RUN: rm -f %t.dll %t.pdb # RUN: lld-link /Brepro /debug /dll /out:%t.dll /entry:DllMain %t.obj # RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix REPRODEBUG %s # RUN: rm -f %t.dll %t.pdb # RUN: lld-link /lldmingw /debug:dwarf /dll /out:%t.dll /entry:DllMain %t.obj # RUN: llvm-readobj --coff-debug-directory %t.dll | FileCheck --check-prefix MINGW %s # CHECK: File: [[FILE:.*]].dll # CHECK: DebugDirectory [ # CHECK: DebugEntry { # CHECK: Characteristics: 0x0 # CHECK: TimeDateStamp: # CHECK: MajorVersion: 0x0 # CHECK: MinorVersion: 0x0 # CHECK: Type: CodeView (0x2) # CHECK: SizeOfData: 0x{{[^0]}} # CHECK: AddressOfRawData: 0x{{[^0]}} # CHECK: PointerToRawData: 0x{{[^0]}} # CHECK: PDBInfo { # CHECK: PDBSignature: 0x53445352 # CHECK: PDBGUID: [[GUID:\(([A-Za-z0-9]{2} ?){16}\)]] # CHECK: PDBAge: 1 # CHECK: PDBFileName: {{.*}}.pdb # CHECK: } # CHECK: } # CHECK: ] # CHECK: File: [[FILE]].dll # CHECK: DebugDirectory [ # CHECK: DebugEntry { # CHECK: Characteristics: 0x0 # CHECK: TimeDateStamp: # CHECK: MajorVersion: 0x0 # CHECK: MinorVersion: 0x0 # CHECK: Type: CodeView (0x2) # CHECK: SizeOfData: 0x{{[^0]}} # CHECK: AddressOfRawData: 0x{{[^0]}} # CHECK: PointerToRawData: 0x{{[^0]}} # CHECK: PDBInfo { # CHECK: PDBSignature: 0x53445352 # CHECK: PDBGUID: [[GUID]] # CHECK: PDBAge: 1 # CHECK: PDBFileName: {{.*}}.pdb # CHECK: } # CHECK: } # CHECK: ] # TWOPDBS: File: [[FILE:.*]].dll # TWOPDBS: DebugDirectory [ # TWOPDBS: DebugEntry { # TWOPDBS: Characteristics: 0x0 # TWOPDBS: TimeDateStamp: # TWOPDBS: MajorVersion: 0x0 # TWOPDBS: MinorVersion: 0x0 # TWOPDBS: Type: CodeView (0x2) # TWOPDBS: SizeOfData: 0x{{[^0]}} # TWOPDBS: AddressOfRawData: 0x{{[^0]}} # TWOPDBS: PointerToRawData: 0x{{[^0]}} # TWOPDBS: PDBInfo { # TWOPDBS: PDBSignature: 0x53445352 # TWOPDBS: PDBGUID: [[GUID:\(([A-Za-z0-9]{2} ?){16}\)]] # TWOPDBS: PDBAge: 1 # TWOPDBS: PDBFileName: {{.*}}.pdb # TWOPDBS: } # TWOPDBS: } # TWOPDBS: ] # TWOPDBS: File: [[FILE]].dll # TWOPDBS: DebugDirectory [ # TWOPDBS: DebugEntry { # TWOPDBS: Characteristics: 0x0 # TWOPDBS: TimeDateStamp: # TWOPDBS: MajorVersion: 0x0 # TWOPDBS: MinorVersion: 0x0 # TWOPDBS: Type: CodeView (0x2) # TWOPDBS: SizeOfData: 0x{{[^0]}} # TWOPDBS: AddressOfRawData: 0x{{[^0]}} # TWOPDBS: PointerToRawData: 0x{{[^0]}} # TWOPDBS: PDBInfo { # TWOPDBS: PDBSignature: 0x53445352 # TWOPDBS-NOT: PDBGUID: [[GUID]] # TWOPDBS: PDBAge: 1 # TWOPDBS: PDBFileName: {{.*}}.pdb # TWOPDBS: } # TWOPDBS: } # TWOPDBS: ] # REPRO: File: {{.*}}.dll # REPRO: DebugDirectory [ # REPRO: DebugEntry { # REPRO: Characteristics: 0x0 # REPRO: TimeDateStamp: # REPRO: MajorVersion: 0x0 # REPRO: MinorVersion: 0x0 # REPRO: Type: Repro (0x10) # REPRO: SizeOfData: 0x0 # REPRO: AddressOfRawData: 0x0 # REPRO: PointerToRawData: 0x0 # REPRO: } # REPRO: ] # REPRODEBUG: File: {{.*}}.dll # REPRODEBUG: DebugDirectory [ # REPRODEBUG: DebugEntry { # REPRODEBUG: Characteristics: 0x0 # REPRODEBUG: TimeDateStamp: # REPRODEBUG: MajorVersion: 0x0 # REPRODEBUG: MinorVersion: 0x0 # REPRODEBUG: Type: CodeView (0x2) # REPRODEBUG: SizeOfData: 0x{{[^0]}} # REPRODEBUG: AddressOfRawData: 0x{{[^0]}} # REPRODEBUG: PointerToRawData: 0x{{[^0]}} # REPRODEBUG: PDBInfo { # REPRODEBUG: PDBSignature: 0x53445352 # REPRODEBUG: PDBGUID: # REPRODEBUG: PDBAge: 1 # REPRODEBUG: PDBFileName: # REPRODEBUG: } # REPRODEBUG: } # REPRODEBUG: DebugEntry { # REPRODEBUG: Characteristics: 0x0 # REPRODEBUG: TimeDateStamp: # REPRODEBUG: MajorVersion: 0x0 # REPRODEBUG: MinorVersion: 0x0 # REPRODEBUG: Type: Repro (0x10) # REPRODEBUG: SizeOfData: 0x0 # REPRODEBUG: AddressOfRawData: 0x0 # REPRODEBUG: PointerToRawData: 0x0 # REPRODEBUG: } # REPRODEBUG: ] # MINGW: File: {{.*}}.dll # MINGW: DebugDirectory [ # MINGW: DebugEntry { # MINGW: Characteristics: 0x0 # MINGW: TimeDateStamp: # MINGW: MajorVersion: 0x0 # MINGW: MinorVersion: 0x0 # MINGW: Type: CodeView (0x2) # MINGW: SizeOfData: 0x{{[^0]}} # MINGW: AddressOfRawData: 0x{{[^0]}} # MINGW: PointerToRawData: 0x{{[^0]}} # MINGW: PDBInfo { # MINGW: PDBSignature: 0x53445352 # MINGW: PDBGUID: [[GUID:\(([A-Za-z0-9]{2} ?){16}\)]] # MINGW: PDBAge: 1 # MINGW: PDBFileName: # MINGW: } # MINGW: } # MINGW: ] --- !COFF header: Machine: IMAGE_FILE_MACHINE_I386 Characteristics: [ ] sections: - Name: .text Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE, IMAGE_SCN_MEM_READ ] Alignment: 4 SectionData: 31C0C3 - Name: .data Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ] Alignment: 4 SectionData: '' - Name: .bss Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA, IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ] Alignment: 4 SectionData: '' symbols: - Name: .text Value: 0 SectionNumber: 1 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_NULL StorageClass: IMAGE_SYM_CLASS_STATIC SectionDefinition: Length: 3 NumberOfRelocations: 0 NumberOfLinenumbers: 0 CheckSum: 3963538403 Number: 1 - Name: .data Value: 0 SectionNumber: 2 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_NULL StorageClass: IMAGE_SYM_CLASS_STATIC SectionDefinition: Length: 0 NumberOfRelocations: 0 NumberOfLinenumbers: 0 CheckSum: 0 Number: 2 - Name: .bss Value: 0 SectionNumber: 3 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_NULL StorageClass: IMAGE_SYM_CLASS_STATIC SectionDefinition: Length: 0 NumberOfRelocations: 0 NumberOfLinenumbers: 0 CheckSum: 0 Number: 3 - Name: '@feat.00' Value: 1 SectionNumber: -1 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_NULL StorageClass: IMAGE_SYM_CLASS_STATIC - Name: _DllMain Value: 0 SectionNumber: 1 SimpleType: IMAGE_SYM_TYPE_NULL ComplexType: IMAGE_SYM_DTYPE_FUNCTION StorageClass: IMAGE_SYM_CLASS_EXTERNAL ...