[lld] r327895 - Support embedding natvis files in PDBs.

Zachary Turner via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 19 13:40:49 PDT 2018


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.

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 <(419)%20671-7433>
>>> +      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 <(425)%20264-0062>,
>>> compression=None
>>> +CHECK-SECOND-NEXT: Second Natvis Test
>>> +
>>> +CHECK-THIRD:      {{.*}}natvis-3.natvis (18 bytes): obj=<null>,
>>> vname={{.*}}natvis-3.natvis, crc=2069719849 <(206)%20971-9849>,
>>> 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
>>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180319/92298691/attachment.html>


More information about the llvm-commits mailing list