[lld] r327895 - Support embedding natvis files in PDBs.
Hans Wennborg via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 20 03:19:35 PDT 2018
On Mon, Mar 19, 2018 at 9:40 PM, Zachary Turner via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> Is there anything you can do to help figure out why this REQUIRES line is
> evaluating to the wrong value?
>
> It starts from lld/test/lit.site.cfg.py.in, which has this line:
>
> config.have_dia_sdk = "@LLVM_ENABLE_DIA_SDK@"
>
> That *should* get processed at CMake time and turns into
> <output_dir>/tools/lld/test/lit.site.cfg.py:
>
> config.have_dia_sdk = "OFF"
>
> Then, in lld/test/lit.cfg.py, we have this block:
>
> if config.have_dia_sdk:
> config.available_features.add("diasdk")
>
> which should get ignored on this bot.
>
> But this line is executing, so it makes me think the pre-processing step is
> setting the value to "ON", which would make no sense to me.
>
> If you can offer some insight into why this might be happening that would
> help.
In this case, config.have_dia_sdk was set to "0", i.e. a string value
which converts to true :-)
I see this was modeled after config.llvm_libxml2_enabled which is also
a string. I've fixed that in r327964. Dropping the quotes around
@LLVM_ENABLE_DIA_SDK@ in your patch should make it work.
> On Mon, Mar 19, 2018 at 1:32 PM Zachary Turner <zturner at google.com> wrote:
>>
>> Hmm, this test should not even be running on these platforms due to the
>> `REQUIRES: diasdk` line.
>>
>> On Mon, Mar 19, 2018 at 1:29 PM Galina Kistanova <gkistanova at gmail.com>
>> wrote:
>>>
>>> Hello Zachary,
>>>
>>> This commit added broken test one of our builders:
>>>
>>> http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast
>>> . . .
>>> Failing Tests (2):
>>> . . .
>>> lld :: COFF/pdb-natvis.test
>>>
>>> Please have a look?
>>>
>>> The builder was already red and did not send notifications on this.
>>>
>>> Thanks
>>>
>>>
>>> Galina
>>>
>>> On Mon, Mar 19, 2018 at 12:53 PM, Zachary Turner via llvm-commits
>>> <llvm-commits at lists.llvm.org> wrote:
>>>>
>>>> Author: zturner
>>>> Date: Mon Mar 19 12:53:51 2018
>>>> New Revision: 327895
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=327895&view=rev
>>>> Log:
>>>> Support embedding natvis files in PDBs.
>>>>
>>>> Natvis is a debug language supported by Visual Studio for
>>>> specifying custom visualizers. The /NATVIS option is an
>>>> undocumented link.exe flag which will take a .natvis file
>>>> and "inject" it into the PDB. This way, you can ship the
>>>> debug visualizers for a program along with the PDB, which
>>>> is very useful for postmortem debugging.
>>>>
>>>> This is implemented by adding a new "named stream" to the
>>>> PDB with a special name of /src/files/<natvis file name>
>>>> and simply copying the contents of the xml into this file.
>>>>
>>>> Additionally, we need to emit a single stream named
>>>> /src/headerblock which contains a hash table of embedded
>>>> files to records describing them.
>>>>
>>>> This patch adds this functionality, including the /NATVIS
>>>> option to lld-link.
>>>>
>>>> Differential Revision: https://reviews.llvm.org/D44328
>>>>
>>>> Added:
>>>> lld/trunk/test/COFF/Inputs/generic.yaml
>>>> lld/trunk/test/COFF/Inputs/natvis-1.natvis
>>>> lld/trunk/test/COFF/Inputs/natvis-2.natvis
>>>> lld/trunk/test/COFF/Inputs/natvis-3.natvis
>>>> lld/trunk/test/COFF/pdb-natvis.test
>>>> Modified:
>>>> lld/trunk/COFF/Config.h
>>>> lld/trunk/COFF/Driver.cpp
>>>> lld/trunk/COFF/Options.td
>>>> lld/trunk/COFF/PDB.cpp
>>>> lld/trunk/test/lit.cfg.py
>>>> lld/trunk/test/lit.site.cfg.py.in
>>>>
>>>> Modified: lld/trunk/COFF/Config.h
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Config.h?rev=327895&r1=327894&r2=327895&view=diff
>>>>
>>>> ==============================================================================
>>>> --- lld/trunk/COFF/Config.h (original)
>>>> +++ lld/trunk/COFF/Config.h Mon Mar 19 12:53:51 2018
>>>> @@ -99,6 +99,7 @@ struct Configuration {
>>>> bool DebugGHashes = false;
>>>> bool ShowTiming = false;
>>>> unsigned DebugTypes = static_cast<unsigned>(DebugType::None);
>>>> + std::vector<std::string> NatvisFiles;
>>>> llvm::SmallString<128> PDBPath;
>>>> std::vector<llvm::StringRef> Argv;
>>>>
>>>>
>>>> Modified: lld/trunk/COFF/Driver.cpp
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Driver.cpp?rev=327895&r1=327894&r2=327895&view=diff
>>>>
>>>> ==============================================================================
>>>> --- lld/trunk/COFF/Driver.cpp (original)
>>>> +++ lld/trunk/COFF/Driver.cpp Mon Mar 19 12:53:51 2018
>>>> @@ -933,9 +933,12 @@ void LinkerDriver::link(ArrayRef<const c
>>>>
>>>> // Handle /pdb
>>>> bool ShouldCreatePDB = Args.hasArg(OPT_debug, OPT_debug_ghash);
>>>> - if (ShouldCreatePDB)
>>>> + if (ShouldCreatePDB) {
>>>> if (auto *Arg = Args.getLastArg(OPT_pdb))
>>>> Config->PDBPath = Arg->getValue();
>>>> + if (Args.hasArg(OPT_natvis))
>>>> + Config->NatvisFiles = Args.getAllArgValues(OPT_natvis);
>>>> + }
>>>>
>>>> // Handle /noentry
>>>> if (Args.hasArg(OPT_noentry)) {
>>>>
>>>> Modified: lld/trunk/COFF/Options.td
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Options.td?rev=327895&r1=327894&r2=327895&view=diff
>>>>
>>>> ==============================================================================
>>>> --- lld/trunk/COFF/Options.td (original)
>>>> +++ lld/trunk/COFF/Options.td Mon Mar 19 12:53:51 2018
>>>> @@ -45,6 +45,7 @@ def nodefaultlib : P<"nodefaultlib", "Re
>>>> def opt : P<"opt", "Control optimizations">;
>>>> def order : P<"order", "Put functions in order">;
>>>> def out : P<"out", "Path to file to write output">;
>>>> +def natvis : P<"natvis", "Path to natvis file to embed in the PDB">;
>>>> def pdb : P<"pdb", "PDB file path">;
>>>> def section : P<"section", "Specify section attributes">;
>>>> def stack : P<"stack", "Size of the stack">;
>>>> @@ -162,7 +163,6 @@ def delay : QF<"delay">;
>>>> def errorreport : QF<"errorreport">;
>>>> def idlout : QF<"idlout">;
>>>> def maxilksize : QF<"maxilksize">;
>>>> -def natvis : QF<"natvis">;
>>>> def pdbaltpath : QF<"pdbaltpath">;
>>>> def tlbid : QF<"tlbid">;
>>>> def tlbout : QF<"tlbout">;
>>>>
>>>> Modified: lld/trunk/COFF/PDB.cpp
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/PDB.cpp?rev=327895&r1=327894&r2=327895&view=diff
>>>>
>>>> ==============================================================================
>>>> --- lld/trunk/COFF/PDB.cpp (original)
>>>> +++ lld/trunk/COFF/PDB.cpp Mon Mar 19 12:53:51 2018
>>>> @@ -90,6 +90,9 @@ public:
>>>> /// Emit the basic PDB structure: initial streams, headers, etc.
>>>> void initialize(const llvm::codeview::DebugInfo &BuildId);
>>>>
>>>> + /// Add natvis files specified on the command line.
>>>> + void addNatvisFiles();
>>>> +
>>>> /// Link CodeView from each object file in the symbol table into the
>>>> PDB.
>>>> void addObjectsToPDB();
>>>>
>>>> @@ -961,6 +964,18 @@ void PDBLinker::addObjectsToPDB() {
>>>> }
>>>> }
>>>>
>>>> +void PDBLinker::addNatvisFiles() {
>>>> + for (StringRef File : Config->NatvisFiles) {
>>>> + ErrorOr<std::unique_ptr<MemoryBuffer>> DataOrErr =
>>>> + MemoryBuffer::getFile(File);
>>>> + if (!DataOrErr) {
>>>> + warn("Cannot open input file: " + File);
>>>> + continue;
>>>> + }
>>>> + Builder.addInjectedSource(File, std::move(*DataOrErr));
>>>> + }
>>>> +}
>>>> +
>>>> static void addCommonLinkerModuleSymbols(StringRef Path,
>>>>
>>>> pdb::DbiModuleDescriptorBuilder &Mod,
>>>> BumpPtrAllocator &Allocator) {
>>>> @@ -1041,6 +1056,7 @@ void coff::createPDB(SymbolTable *Symtab
>>>> PDB.initialize(BuildId);
>>>> PDB.addObjectsToPDB();
>>>> PDB.addSections(OutputSections, SectionTable);
>>>> + PDB.addNatvisFiles();
>>>>
>>>> ScopedTimer T2(DiskCommitTimer);
>>>> PDB.commit();
>>>>
>>>> Added: lld/trunk/test/COFF/Inputs/generic.yaml
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/generic.yaml?rev=327895&view=auto
>>>>
>>>> ==============================================================================
>>>> --- lld/trunk/test/COFF/Inputs/generic.yaml (added)
>>>> +++ lld/trunk/test/COFF/Inputs/generic.yaml Mon Mar 19 12:53:51 2018
>>>> @@ -0,0 +1,282 @@
>>>> +--- !COFF
>>>> +header:
>>>> + Machine: IMAGE_FILE_MACHINE_AMD64
>>>> + Characteristics: [ ]
>>>> +sections:
>>>> + - Name: .text
>>>> + Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE,
>>>> IMAGE_SCN_MEM_READ ]
>>>> + Alignment: 16
>>>> + SectionData:
>>>> 4883EC1831C0C7442414000000004889542408894C24044883C418C3
>>>> + - 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: ''
>>>> + - Name: .xdata
>>>> + Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,
>>>> IMAGE_SCN_MEM_READ ]
>>>> + Alignment: 4
>>>> + SectionData: '0104010004220000'
>>>> + - Name: .drectve
>>>> + Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]
>>>> + Alignment: 1
>>>> + SectionData:
>>>> 202F44454641554C544C49423A6C6962636D742E6C6962202F44454641554C544C49423A6F6C646E616D65732E6C6962
>>>> + - Name: '.debug$S'
>>>> + Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,
>>>> IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
>>>> + Alignment: 4
>>>> + SectionData:
>>>> 04000000F10000002F0000002D003C1101000000D0000700000000000000581B000000000000636C616E672076657273696F6E20372E302E30200000F1000000760000002A0047110000000000000000000000001C000000000000000000000003100000000000000000006D61696E000D003E117400000001006172676300120045114F0100000400000017000000000005000D003E110010000001006172677600120045114F01000008000000170000000000050002004F110000F20000002800000000000000000000001C00000000000000020000001C00000000000000020000001700000003000000F40000001800000001000000100139E9A066A1995A99DD01F5A392F26D7C0000F30000003000000000443A5C7372635C6C6C766D6275696C645C636C5C52656C656173655C7836345C67656E657269632E63707000000000
>>>> + Subsections:
>>>> + - !Symbols
>>>> + Records:
>>>> + - Kind: S_COMPILE3
>>>> + Compile3Sym:
>>>> + Flags: [ ]
>>>> + Machine: X64
>>>> + FrontendMajor: 7
>>>> + FrontendMinor: 0
>>>> + FrontendBuild: 0
>>>> + FrontendQFE: 0
>>>> + BackendMajor: 7000
>>>> + BackendMinor: 0
>>>> + BackendBuild: 0
>>>> + BackendQFE: 0
>>>> + Version: 'clang version 7.0.0 '
>>>> + - !Symbols
>>>> + Records:
>>>> + - Kind: S_GPROC32_ID
>>>> + ProcSym:
>>>> + CodeSize: 28
>>>> + DbgStart: 0
>>>> + DbgEnd: 0
>>>> + FunctionType: 4099
>>>> + Flags: [ ]
>>>> + DisplayName: main
>>>> + - Kind: S_LOCAL
>>>> + LocalSym:
>>>> + Type: 116
>>>> + Flags: [ IsParameter ]
>>>> + VarName: argc
>>>> + - Kind: S_DEFRANGE_REGISTER_REL
>>>> + DefRangeRegisterRelSym:
>>>> + Register: 335
>>>> + Flags: 0
>>>> + BasePointerOffset: 4
>>>> + Range:
>>>> + OffsetStart: 23
>>>> + ISectStart: 0
>>>> + Range: 5
>>>> + Gaps:
>>>> + - Kind: S_LOCAL
>>>> + LocalSym:
>>>> + Type: 4096
>>>> + Flags: [ IsParameter ]
>>>> + VarName: argv
>>>> + - Kind: S_DEFRANGE_REGISTER_REL
>>>> + DefRangeRegisterRelSym:
>>>> + Register: 335
>>>> + Flags: 0
>>>> + BasePointerOffset: 8
>>>> + Range:
>>>> + OffsetStart: 23
>>>> + ISectStart: 0
>>>> + Range: 5
>>>> + Gaps:
>>>> + - Kind: S_PROC_ID_END
>>>> + ScopeEndSym:
>>>> + - !Lines
>>>> + CodeSize: 28
>>>> + Flags: [ ]
>>>> + RelocOffset: 0
>>>> + RelocSegment: 0
>>>> + Blocks:
>>>> + - FileName:
>>>> 'D:\src\llvmbuild\cl\Release\x64\generic.cpp'
>>>> + Lines:
>>>> + - Offset: 0
>>>> + LineStart: 2
>>>> + IsStatement: false
>>>> + EndDelta: 0
>>>> + - Offset: 23
>>>> + LineStart: 3
>>>> + IsStatement: false
>>>> + EndDelta: 0
>>>> + Columns:
>>>> + - !FileChecksums
>>>> + Checksums:
>>>> + - FileName:
>>>> 'D:\src\llvmbuild\cl\Release\x64\generic.cpp'
>>>> + Kind: MD5
>>>> + Checksum: 39E9A066A1995A99DD01F5A392F26D7C
>>>> + - !StringTable
>>>> + Strings:
>>>> + - 'D:\src\llvmbuild\cl\Release\x64\generic.cpp'
>>>> + - ''
>>>> + - ''
>>>> + - ''
>>>> + Relocations:
>>>> + - VirtualAddress: 100
>>>> + SymbolName: main
>>>> + Type: IMAGE_REL_AMD64_SECREL
>>>> + - VirtualAddress: 104
>>>> + SymbolName: main
>>>> + Type: IMAGE_REL_AMD64_SECTION
>>>> + - VirtualAddress: 139
>>>> + SymbolName: .text
>>>> + Type: IMAGE_REL_AMD64_SECREL
>>>> + - VirtualAddress: 143
>>>> + SymbolName: .text
>>>> + Type: IMAGE_REL_AMD64_SECTION
>>>> + - VirtualAddress: 174
>>>> + SymbolName: .text
>>>> + Type: IMAGE_REL_AMD64_SECREL
>>>> + - VirtualAddress: 178
>>>> + SymbolName: .text
>>>> + Type: IMAGE_REL_AMD64_SECTION
>>>> + - VirtualAddress: 196
>>>> + SymbolName: main
>>>> + Type: IMAGE_REL_AMD64_SECREL
>>>> + - VirtualAddress: 200
>>>> + SymbolName: main
>>>> + Type: IMAGE_REL_AMD64_SECTION
>>>> + - Name: '.debug$T'
>>>> + Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,
>>>> IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
>>>> + Alignment: 4
>>>> + SectionData:
>>>> 040000000A000210700600000C0001000E0001120200000074000000001000000E0008107400000000000200011000001200011600000000021000006D61696E00F3F2F1
>>>> + Types:
>>>> + - Kind: LF_POINTER
>>>> + Pointer:
>>>> + ReferentType: 1648
>>>> + Attrs: 65548
>>>> + - Kind: LF_ARGLIST
>>>> + ArgList:
>>>> + ArgIndices: [ 116, 4096 ]
>>>> + - Kind: LF_PROCEDURE
>>>> + Procedure:
>>>> + ReturnType: 116
>>>> + CallConv: NearC
>>>> + Options: [ None ]
>>>> + ParameterCount: 2
>>>> + ArgumentList: 4097
>>>> + - Kind: LF_FUNC_ID
>>>> + FuncId:
>>>> + ParentScope: 0
>>>> + FunctionType: 4098
>>>> + Name: main
>>>> + - Name: .pdata
>>>> + Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,
>>>> IMAGE_SCN_MEM_READ ]
>>>> + Alignment: 4
>>>> + SectionData: 000000001C00000000000000
>>>> + Relocations:
>>>> + - VirtualAddress: 0
>>>> + SymbolName: main
>>>> + Type: IMAGE_REL_AMD64_ADDR32NB
>>>> + - VirtualAddress: 4
>>>> + SymbolName: main
>>>> + Type: IMAGE_REL_AMD64_ADDR32NB
>>>> + - VirtualAddress: 8
>>>> + SymbolName: .xdata
>>>> + Type: IMAGE_REL_AMD64_ADDR32NB
>>>> +symbols:
>>>> + - Name: .text
>>>> + Value: 0
>>>> + SectionNumber: 1
>>>> + SimpleType: IMAGE_SYM_TYPE_NULL
>>>> + ComplexType: IMAGE_SYM_DTYPE_NULL
>>>> + StorageClass: IMAGE_SYM_CLASS_STATIC
>>>> + SectionDefinition:
>>>> + Length: 28
>>>> + NumberOfRelocations: 0
>>>> + NumberOfLinenumbers: 0
>>>> + CheckSum: 594448369
>>>> + 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: .xdata
>>>> + Value: 0
>>>> + SectionNumber: 4
>>>> + SimpleType: IMAGE_SYM_TYPE_NULL
>>>> + ComplexType: IMAGE_SYM_DTYPE_NULL
>>>> + StorageClass: IMAGE_SYM_CLASS_STATIC
>>>> + SectionDefinition:
>>>> + Length: 8
>>>> + NumberOfRelocations: 0
>>>> + NumberOfLinenumbers: 0
>>>> + CheckSum: 1192424177
>>>> + Number: 4
>>>> + - Name: .drectve
>>>> + Value: 0
>>>> + SectionNumber: 5
>>>> + SimpleType: IMAGE_SYM_TYPE_NULL
>>>> + ComplexType: IMAGE_SYM_DTYPE_NULL
>>>> + StorageClass: IMAGE_SYM_CLASS_STATIC
>>>> + SectionDefinition:
>>>> + Length: 48
>>>> + NumberOfRelocations: 0
>>>> + NumberOfLinenumbers: 0
>>>> + CheckSum: 149686238
>>>> + Number: 5
>>>> + - Name: '.debug$S'
>>>> + Value: 0
>>>> + SectionNumber: 6
>>>> + SimpleType: IMAGE_SYM_TYPE_NULL
>>>> + ComplexType: IMAGE_SYM_DTYPE_NULL
>>>> + StorageClass: IMAGE_SYM_CLASS_STATIC
>>>> + SectionDefinition:
>>>> + Length: 324
>>>> + NumberOfRelocations: 8
>>>> + NumberOfLinenumbers: 0
>>>> + CheckSum: 4196717433
>>>> + Number: 6
>>>> + - Name: '.debug$T'
>>>> + Value: 0
>>>> + SectionNumber: 7
>>>> + SimpleType: IMAGE_SYM_TYPE_NULL
>>>> + ComplexType: IMAGE_SYM_DTYPE_NULL
>>>> + StorageClass: IMAGE_SYM_CLASS_STATIC
>>>> + SectionDefinition:
>>>> + Length: 68
>>>> + NumberOfRelocations: 0
>>>> + NumberOfLinenumbers: 0
>>>> + CheckSum: 485351071
>>>> + Number: 7
>>>> + - Name: .pdata
>>>> + Value: 0
>>>> + SectionNumber: 8
>>>> + SimpleType: IMAGE_SYM_TYPE_NULL
>>>> + ComplexType: IMAGE_SYM_DTYPE_NULL
>>>> + StorageClass: IMAGE_SYM_CLASS_STATIC
>>>> + SectionDefinition:
>>>> + Length: 12
>>>> + NumberOfRelocations: 3
>>>> + NumberOfLinenumbers: 0
>>>> + CheckSum: 722740324
>>>> + Number: 8
>>>> + - Name: main
>>>> + Value: 0
>>>> + SectionNumber: 1
>>>> + SimpleType: IMAGE_SYM_TYPE_NULL
>>>> + ComplexType: IMAGE_SYM_DTYPE_FUNCTION
>>>> + StorageClass: IMAGE_SYM_CLASS_EXTERNAL
>>>> +...
>>>>
>>>> Added: lld/trunk/test/COFF/Inputs/natvis-1.natvis
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/natvis-1.natvis?rev=327895&view=auto
>>>>
>>>> ==============================================================================
>>>> --- lld/trunk/test/COFF/Inputs/natvis-1.natvis (added)
>>>> +++ lld/trunk/test/COFF/Inputs/natvis-1.natvis Mon Mar 19 12:53:51 2018
>>>> @@ -0,0 +1 @@
>>>> +1st Natvis Test
>>>>
>>>> Added: lld/trunk/test/COFF/Inputs/natvis-2.natvis
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/natvis-2.natvis?rev=327895&view=auto
>>>>
>>>> ==============================================================================
>>>> --- lld/trunk/test/COFF/Inputs/natvis-2.natvis (added)
>>>> +++ lld/trunk/test/COFF/Inputs/natvis-2.natvis Mon Mar 19 12:53:51 2018
>>>> @@ -0,0 +1 @@
>>>> +Second Natvis Test
>>>>
>>>> Added: lld/trunk/test/COFF/Inputs/natvis-3.natvis
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/natvis-3.natvis?rev=327895&view=auto
>>>>
>>>> ==============================================================================
>>>> --- lld/trunk/test/COFF/Inputs/natvis-3.natvis (added)
>>>> +++ lld/trunk/test/COFF/Inputs/natvis-3.natvis Mon Mar 19 12:53:51 2018
>>>> @@ -0,0 +1 @@
>>>> +Third Natvis Test
>>>>
>>>> Added: lld/trunk/test/COFF/pdb-natvis.test
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/pdb-natvis.test?rev=327895&view=auto
>>>>
>>>> ==============================================================================
>>>> --- lld/trunk/test/COFF/pdb-natvis.test (added)
>>>> +++ lld/trunk/test/COFF/pdb-natvis.test Mon Mar 19 12:53:51 2018
>>>> @@ -0,0 +1,26 @@
>>>> +REQUIRES: diasdk
>>>> +
>>>> +RUN: yaml2obj %p/Inputs/generic.yaml > %t.obj
>>>> +RUN: lld-link /DEBUG %t.obj /nodefaultlib /entry:main
>>>> /NATVIS:%p/Inputs/natvis-1.natvis \
>>>> +RUN: /NATVIS:%p/Inputs/natvis-2.natvis
>>>> /NATVIS:%p/Inputs/natvis-3.natvis /OUT:%t.exe \
>>>> +RUN: /PDB:%t.pdb
>>>> +RUN: llvm-pdbutil pretty -injected-sources -injected-source-content
>>>> %t.pdb | FileCheck \
>>>> +RUN: --check-prefix=CHECK-FIRST %s
>>>> +RUN: llvm-pdbutil pretty -injected-sources -injected-source-content
>>>> %t.pdb | FileCheck \
>>>> +RUN: --check-prefix=CHECK-SECOND %s
>>>> +RUN: llvm-pdbutil pretty -injected-sources -injected-source-content
>>>> %t.pdb | FileCheck \
>>>> +RUN: --check-prefix=CHECK-THIRD %s
>>>> +
>>>> +RUN: lld-link /DEBUG %t.obj /nodefaultlib /entry:main
>>>> /NATVIS:%p/Inputs/test2.natvis \
>>>> +RUN: /OUT:%t.exe /PDB:%t.pdb 2>&1 | FileCheck
>>>> --check-prefix=CHECK-MISSING %s
>>>> +
>>>> +CHECK-FIRST: {{.*}}natvis-1.natvis (16 bytes): obj=<null>,
>>>> vname={{.*}}natvis-1.natvis, crc=355285096, compression=None
>>>> +CHECK-FIRST-NEXT: 1st Natvis Test
>>>> +
>>>> +CHECK-SECOND: {{.*}}natvis-2.natvis (19 bytes): obj=<null>,
>>>> vname={{.*}}natvis-2.natvis, crc=4252640062, compression=None
>>>> +CHECK-SECOND-NEXT: Second Natvis Test
>>>> +
>>>> +CHECK-THIRD: {{.*}}natvis-3.natvis (18 bytes): obj=<null>,
>>>> vname={{.*}}natvis-3.natvis, crc=2069719849, compression=None
>>>> +CHECK-THIRD-NEXT: Third Natvis Test
>>>> +
>>>> +CHECK-MISSING: Cannot open input file: {{.*}}test2.natvis
>>>> \ No newline at end of file
>>>>
>>>> Modified: lld/trunk/test/lit.cfg.py
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/lit.cfg.py?rev=327895&r1=327894&r2=327895&view=diff
>>>>
>>>> ==============================================================================
>>>> --- lld/trunk/test/lit.cfg.py (original)
>>>> +++ lld/trunk/test/lit.cfg.py Mon Mar 19 12:53:51 2018
>>>> @@ -85,6 +85,9 @@ if (lit.util.which('cvtres', config.envi
>>>> if (config.llvm_libxml2_enabled == '1'):
>>>> config.available_features.add('libxml2')
>>>>
>>>> +if config.have_dia_sdk:
>>>> + config.available_features.add("diasdk")
>>>> +
>>>> tar_executable = lit.util.which('tar', config.environment['PATH'])
>>>> if tar_executable:
>>>> tar_version = subprocess.Popen(
>>>>
>>>> Modified: lld/trunk/test/lit.site.cfg.py.in
>>>> URL:
>>>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/lit.site.cfg.py.in?rev=327895&r1=327894&r2=327895&view=diff
>>>>
>>>> ==============================================================================
>>>> --- lld/trunk/test/lit.site.cfg.py.in (original)
>>>> +++ lld/trunk/test/lit.site.cfg.py.in Mon Mar 19 12:53:51 2018
>>>> @@ -1,5 +1,6 @@
>>>> @LIT_SITE_CFG_IN_HEADER@
>>>>
>>>> +config.have_dia_sdk = "@LLVM_ENABLE_DIA_SDK@"
>>>> config.llvm_src_root = "@LLVM_SOURCE_DIR@"
>>>> config.llvm_obj_root = "@LLVM_BINARY_DIR@"
>>>> config.llvm_tools_dir = "@LLVM_TOOLS_DIR@"
>>>>
>>>>
>>>> _______________________________________________
>>>> llvm-commits mailing list
>>>> llvm-commits at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>>
>>>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
More information about the llvm-commits
mailing list