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

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


Actually this is failing even on a Windows bot for another reason, so I
went ahead and reverted it for now.

On Mon, Mar 19, 2018 at 1:40 PM Zachary Turner <zturner at google.com> 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.
>
> 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/cc7c9d67/attachment.html>


More information about the llvm-commits mailing list