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

Zachary Turner via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 20 09:13:20 PDT 2018


I think there’s a function in lit called pythonize_bool which serves this
purpose (ie it can handle 0, off, etc)

But i need to submit it at the same time alongside another fix, so I’ll do
it in a bit
On Tue, Mar 20, 2018 at 3:50 AM Hans Wennborg <hans at chromium.org> wrote:

> On Tue, Mar 20, 2018 at 11:19 AM, Hans Wennborg <hans at chromium.org> wrote:
> > 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.
>
> Actually, my change didn't work because the libxml2 cmake var doesn't
> expand to 0 or 1: it expands to nothing or 1.
>
> I've reverted my change. I suppose the easiest way to make yours work
> is to check for '1' in the if-statement like the code for
> llvm_libxml2_enabled does.
>
> >> 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
> >>>>
> >>>>
> >>
> >> _______________________________________________
> >> 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/20180320/3850cd84/attachment.html>


More information about the llvm-commits mailing list