[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