summaryrefslogtreecommitdiffstats
path: root/lldb/lit
Commit message (Collapse)AuthorAgeFilesLines
...
* Change lldb-test to use ParseAllDebugSymbols.Zachary Turner2019-01-092-57/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ParseDeclsForContext was originally created to serve the very specific case where the context is a function block. It was never intended to be used for arbitrary DeclContexts, however due to the generic name, the DWARF and PDB plugins implemented it in this way "just in case". Then, lldb-test came along and decided to use it in that way. Related to this, there are a set of functions in the SymbolFile class interface whose requirements and expectations are not documented. For example, if you call ParseCompileUnitFunctions, there's an inherent requirement that you create entries in the underlying clang AST for these functions as well as their signature types, because in order to create an lldb_private::Function object, you have to pass it a CompilerType for the parameter representing the signature. On the other hand, there is no similar requirement (either inherent or documented) if one were to call ParseDeclsForContext. Specifically, if one calls ParseDeclsForContext, and some variable declarations, types, and other things are added to the clang AST, is it necessary to create lldb::Variable, lldb::Type, etc objects representing them? Nobody knows. There is, however, an accidental requirement, because since all of the plugins implemented this just in case, lldb-test came along and used ParsedDeclsForContext, and then wrote check lines that depended on this. When I went to try and implemented the NativePDB reader, I did not adhere to this (in fact, from a layering perspective I went out of my way to avoid it), and as a result the existing DIA PDB tests don't work when the native PDB reader is enabled, because they expect that calling ParseDeclsForContext will modify the *module's* view of symbols, and not just the internal AST. All of this confusion, however, can be avoided if we simply stick to using ParseDeclsForContext for its original intended use case (blocks), and use a different function (ParseAllDebugSymbols) for its intended use case which is, unsuprisingly, to parse all the debug symbols (which is all lldb-test really wanted to do anyway). In the future, I would like to change ParseDeclsForContext to ParseDeclsForFunctionBlock, then delete all of the dead code inside that handles other types of DeclContexts (and probably even assert if the DeclContext is anything other than a block). A few PDB tests needed to be fixed up as a result of this, and this also exposed a couple of bugs in the DIA PDB reader (doesn't matter much since it should be going away soon, but worth mentioning) where the appropriate AST entries weren't being created always. Differential Revision: https://reviews.llvm.org/D56418 llvm-svn: 350764
* ELF: create "container" sections from PT_LOAD segmentsPavel Labath2019-01-099-2/+316
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is the result of the discussion in D55356, where it was suggested as a solution to representing the addresses that logically belong to a module in memory, but are not a part of any of its sections. The ELF PT_LOAD segments are similar to the MachO "load commands", except that the relationship between them and the object file sections is a bit weaker. While in the MachO case, the sections belonging to a specific segment are placed directly inside it in the object file logical structur, in the ELF case, the sections and segments form two separate hierarchies. This means that it is in theory possible to create an elf file where only a part of a section would belong to some segment (and another part to a different one). However, I am not aware of any tool which would produce such a file (and most tools will have problems ingesting them), so this means it is still possible to follow the MachO model and make sections children of the PT_LOAD segments. In case we run into (corrupt?) files with overlapping sections, I have added code (and tests) which adjusts the sizes and/or drops the offending sections in order to present a reasonable image to the upper layers of LLDB. This is mostly done for completeness, as I don't anticipate running into this situation in the real world. However, if we do run into it, and the current behavior is not suitable for some reason, we can implement this logic differently. Reviewers: clayborg, jankratochvil, krytarowski, joerg, espindola Subscribers: emaste, arichardson, lldb-commits Differential Revision: https://reviews.llvm.org/D55998 llvm-svn: 350742
* [CMake] In standalone builds, LLVM_BINARY_DIR should point to LLVM's binary ↵Stefan Granitz2019-01-092-2/+2
| | | | | | | | | | | | | | | | directory Summary: In standalone builds `LLVM_BINARY_DIR` was equal to `LLDB_BINARY_DIR` so far. This is counterintuitive and invalidated the values of `LLDB_DEFAULT_TEST_DSYMUTIL/FILECHECK/COMPILER` etc. Reviewers: zturner, labath, clayborg, JDevlieghere, stella.stamenova, serge-sans-paille Reviewed By: labath Subscribers: mgorny, friss, lldb-commits, #lldb Differential Revision: https://reviews.llvm.org/D56443 llvm-svn: 350738
* Use the minidump exception record if presentLeonard Mosescu2019-01-075-0/+55
| | | | | | | | If the minidump contains a saved exception record use it automatically. Differential Revision: https://reviews.llvm.org/D56293 llvm-svn: 350546
* [CMake] Fix standalone builds: make dependency to LLVM's `count` conditionalStefan Granitz2019-01-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: In standalone builds of LLDB we currently have no target `count` that tests can depend on. This may be fixed in the future by exporting the target from LLVM similar to targets llvm-config, dsymutil and others. In-tree build with this patch: ``` $ ninja -t query tools/lldb/lit/check-lldb-lit tools/lldb/lit/check-lldb-lit: input: phony tools/lldb/lit/CMakeFiles/check-lldb-lit bin/FileCheck bin/clang bin/count bin/darwin-debug bin/debugserver bin/dsymutil bin/llc bin/lldb bin/lldb-mi bin/lldb-server bin/lldb-test bin/llvm-config bin/llvm-mc bin/llvm-objcopy bin/not bin/yaml2obj lib/liblldb.dylib projects/libcxx/lib/cxx tools/lldb/unittests/LLDBUnitTests outputs: tools/lldb/test/check-lldb check-lldb-lit ``` Standalone build with this patch: ``` $ ninja -t query lit/check-lldb-lit lit/check-lldb-lit: input: phony lit/CMakeFiles/check-lldb-lit bin/darwin-debug bin/debugserver bin/lldb bin/lldb-mi bin/lldb-server bin/lldb-test lib/liblldb.dylib unittests/LLDBUnitTests outputs: test/check-lldb check-lldb-lit ``` Reviewers: davide, aprantl, JDevlieghere, alexshap Reviewed By: davide Subscribers: mgorny, lldb-commits, #lldb Differential Revision: https://reviews.llvm.org/D56389 llvm-svn: 350538
* ObjectFileBreakpad: Implement sectionsPavel Labath2019-01-076-0/+156
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch allows ObjectFileBreakpad to parse the contents of Breakpad files into sections. This sounds slightly odd at first, but in essence its not too different from how other object files handle things. For example in elf files, the symtab section consists of a number of "records", where each record represents a single symbol. The same is true for breakpad's PUBLIC section, except in this case, the records will be textual instead of binary. To keep sections contiguous, I create a new section every time record type changes. Normally, the breakpad processor will group all records of the same type in one block, but the format allows them to be intermixed, so in general, the "object file" may contain multiple sections with the same record type. Reviewers: clayborg, zturner, lemo, markmentovai, amccarth Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D55434 llvm-svn: 350511
* [NativePDB] Implement ParseDeclsForContext.Zachary Turner2019-01-021-1/+1
| | | | | | | | | | | This is a first step towards getting lldb-test symbols working with the native plugin. There is a remaining issue, which is that the plugin expects that ParseDeclsForContext will also create lldb symbols rather than just the decls, but the native pdb plugin doesn't currently do this. This will be addressed in a followup patch. llvm-svn: 350243
* [NativePDB] Update function-types-classes test to check VarDecls.Zachary Turner2019-01-021-3/+13
| | | | | | | | A Previous patch added support for creating VarDecls for global variables. This patch updates this test to be more strict and actually check these, not just the types. llvm-svn: 350242
* [NativePDB] Fix setting breakpoint by file and line.Zachary Turner2019-01-024-17/+40
| | | | | | | | | | | | | | | | | | | There were several problems preventing this from working. The first is that when the PDB had an absolute path to the main source file, we would construct an invalid path by prepending the compilation directory to it anyway. So we needed to check if the path is already absolute first. Second, LLDB assumes that the zero'th item in the support file list is the main compilation unit. We were respecting this requirement, but LLDB *also* requires that file to appear somewhere in the list starting from index 1 as well. So the main compilation file should appear in the support file list twice. And when parsing a line table, it expects the LineEntry records to be constructed using the 1-based index. With these two fixes we can now set breakpoints by file and line using the native PDB reader. llvm-svn: 350240
* DWARF: Fix a bug in array size computationPavel Labath2018-12-271-0/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: r346165 introduced a bug, where we would fail to parse the size of an array if that size happened to match an existing die offset. The logic was: if (DWARFDIE count = die.GetReferencedDie(DW_AT_count)) num_elements = compute_vla_size(count); else num_elements = die.GetUsigned(DW_AT_count); // a fixed-size array The problem with this logic was that GetReferencedDie did not take the form class of the attribute into account, and would happily return a die reference for any form, if its value happened to match some die. As this behavior is inconsistent with how llvm's DWARFFormValue class operates, I chose to fix the problem by making our version of this class match the llvm behavior. For this to work, I had to add an explicit form class check to the .apple_XXX tables parsing code, because they do (incorrectly?) use data forms as die references. Reviewers: aprantl, clayborg Subscribers: JDevlieghere, lldb-commits Differential Revision: https://reviews.llvm.org/D55991 llvm-svn: 350086
* Remove ineffective (misspelled) sanitizer optionAdrian Prantl2018-12-211-1/+1
| | | | llvm-svn: 349864
* [NativePDB] Create VarDecls for global variables.Zachary Turner2018-12-203-0/+223
| | | | | | | | | | Previously we would create these for local variables but not for global variables. Also updated existing tests which created global variables to check for them in the resulting AST. llvm-svn: 349854
* [dotest] Consider unexpected passes as failures.Jonas Devlieghere2018-12-201-5/+4
| | | | | | | | | | | | | | | Unexpected successes should be considered failures because they can hide regressions when not addressed. When a test is fixed and not re-enabled, it can easily regress without us noticing. I couldn't find a good way to make this change other than changing it in the unittest2 framework. I know this is less than optimal but since we have the dependency checked in and the change is pretty fundamental to the framework I think it's not unreasonable. Differential revision: https://reviews.llvm.org/D55835 llvm-svn: 349818
* [lit] Skip stop-hook test on WindowsStella Stamenova2018-12-201-1/+5
| | | | | | | This test is now marked as unsupported on Windows - it is not technically "unsupported" on Windows, but it fails because "expr ptr" does not evaluate correctly. However, the error message contains the expected string, so the test "passes" despite the fact that the commands failed The following bug has been opened for it: llvm.org/pr40119 llvm-svn: 349784
* Fix line endings.Zachary Turner2018-12-191-2/+2
| | | | llvm-svn: 349692
* [NativePDB] Enable function-level-linking.test in native mode.Zachary Turner2018-12-191-1/+2
| | | | | | This test passes with the native reader, so run it in both modes. llvm-svn: 349675
* [NativePDB] Fix a use after free and enable corresponding native test.Zachary Turner2018-12-191-1/+2
| | | | | | | | | | | We had a use after free where we were assigning the result of a function that returned a string to a StringRef. After fixing this use after free, one of the DIA PDB tests now passes with the native PDB reader, so we enable the test under native mode as well. The goal is to eventually make all the tests pass under both, at which point we can disable them all under DIA mode. llvm-svn: 349673
* [lit] Make TestConvenienceVariables a cpp fileJonas Devlieghere2018-12-194-9/+14
| | | | | | | | | | | The build.py script always runs the compiler in C++ mode, regardless of the file extension. This results in mangled names presented to the linker which in turn cannot find the printf symbol. While we figure out how to solve this issue I've turned the source file into a cpp file and added extern c. This should unbreak the bots. llvm-svn: 349642
* [lit] Rather than including stdio.h, forward-declare printf in ↵Stella Stamenova2018-12-181-1/+1
| | | | | | TestConvenienceVariables.test llvm-svn: 349573
* [NativePDB] Correctly reconstruct DeclContext for nested enums.Zachary Turner2018-12-182-3/+15
| | | | | | | | | | | | We reconstruct the AST hierarchy by trying to hack up a mangled name for the parent type using the child type's mangled name. This was failing for enums because their tag type is represented with two letters ("W4") instead of one letter ("T", "U", etc) as it is with classes, structs, and unions. After accounting for this we can now correctly determine when an enum is nested inside of a namespace or a class. llvm-svn: 349565
* [lit] Use the new build.py script in the lldb-mi testsStella Stamenova2018-12-1812-44/+15
| | | | | | This allows the tests to pass on Windows as well llvm-svn: 349562
* Fix REQUIRES lineAdrian Prantl2018-12-181-1/+1
| | | | llvm-svn: 349533
* ELF: Don't create sections for section header index 0Pavel Labath2018-12-182-1/+6
| | | | | | | | | | | | | | | | | | | Summary: The first section header does not define a real section. Instead it is used for various elf extensions. This patch skips creation of a section for index 0. This has one furtunate side-effect, in that it allows us to use the section header index as the Section ID (where 0 is also invalid). This way, we can get rid of a lot of spurious +1s in the ObjectFileELF code. Reviewers: clayborg, krytarowski, joerg, espindola Subscribers: emaste, lldb-commits, arichardson Differential Revision: https://reviews.llvm.org/D55757 llvm-svn: 349498
* build.py: inherit environment in the gcc builderPavel Labath2018-12-181-2/+5
| | | | | | | | | | | | | | Summary: This should enable the compiler to find the system linker for the link step. Reviewers: stella.stamenova, zturner Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D55736 llvm-svn: 349461
* Add "dump" command as a custom "process plugin" subcommand when ↵Greg Clayton2018-12-182-0/+86
| | | | | | | | | | | | | | | | | ProcessMinidump is used. Each process plug-in can create its own custom commands. I figured it would be nice to be able to dump things from the minidump file from the lldb command line, so I added the start of the some custom commands. Currently you can dump: minidump stream directory all linux specifc streams, most of which are strings each linux stream individually if desired, or all with --linux The idea is we can expand the command set to dump more things, search for data in the core file, and much more. This patch gets us started. Differential Revision: https://reviews.llvm.org/D55727 llvm-svn: 349429
* [lit] Detect unexpected passes in lldbtest.Jonas Devlieghere2018-12-171-0/+4
| | | | | | | This patch will have lit report unexpected passes when dotest reports at least one XPASS and no failures. llvm-svn: 349401
* [NativePDB] Decouple AST reconstruction from lldb Symbol creation.Zachary Turner2018-12-171-8/+8
| | | | | | | | | | | | Previously the code that parsed debug info to create lldb's Symbol objects such as Variable, Type, Function, etc was tightly coupled to the AST reconstruction code. This made it difficult / impossible to implement functions such as ParseDeclsForContext() that were only supposed to be operating on clang AST's. By splitting these apart, the logic becomes much cleaner and we have a clear separation of responsibilities. llvm-svn: 349383
* Fix lldb's macosx/heap.py cstr command.Davide Italiano2018-12-172-0/+27
| | | | | | <rdar://problem/44432167> llvm-svn: 349372
* Make crashlog.py work or binaries with spaces in their namesAdrian Prantl2018-12-171-0/+99
| | | | | | | | | | | | This is a little dangerous since the crashlog files aren't 100% unambiguous, but the risk is mitigated by using a non-greedy +? pattern. rdar://problem/38478511 Differential Revision: https://reviews.llvm.org/D55608 llvm-svn: 349367
* lldb-test: Improve newline handlingPavel Labath2018-12-151-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Previously lldb-test's LinePrinter would output the indentation spaces even on completely empty lines. This is not nice, as trailing spaces get flagged as errors in some tools/editors, and it prevents FileCheck's CHECK-EMPTY from working. Equally annoying was the fact that the LinePrinter did not terminate it's output with a newline (instead it would leave the unterminated hanging indent from the last NewLine() command), which meant that the shell prompt following the lldb-test command came out wrong. This fixes both issues by changing how newlines are handled. NewLine(), which was ending the previous line ('\n') *and* begging the next line by printing the indent, is now "demoted" to just printing literal "\n". Instead, lines are now delimited via a helper Line object, which makes sure the line is indented and terminated in an RAII fashion. The typical usage would be: Printer.line() << "This text will be indented and terminated"; If one needs to do more work than it will fit into a single statement, one can also assign the result of the line() function to a local variable. The line will then be terminated when that object goes out of scope. Reviewers: zturner Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D55597 llvm-svn: 349269
* ELF: more section creation cleanupPavel Labath2018-12-156-6/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch attempts to move as much code as possible out of the CreateSections function to make room for future improvements there. Some of this may be slightly over-engineered (VMAddressProvider), but I wanted to keep the logic of this function very simple, because once I start taking segment headers into acount (as discussed in D55356), the function is going to grow significantly. While in there, I also added tests for various bits of functionality. This should be NFC, except that I changed the order of hac^H^Heuristicks for determining section type slightly. Previously, name-based deduction (.symtab -> symtab) would take precedence over type-based (SHT_SYMTAB -> symtab) one. In fact we would assert if we ran into a .text section with type SHT_SYMTAB. Though unlikely to matter in practice, this order seemed wrong to me, so I have inverted it. Reviewers: clayborg, krytarowski, espindola Subscribers: emaste, arichardson, lldb-commits Differential Revision: https://reviews.llvm.org/D55706 llvm-svn: 349268
* [NativePDB] Fix local-variables.cpp test.Zachary Turner2018-12-141-1/+1
| | | | | | | | Since we're actually running an executable on the host now, different versions of Windows could load different system libraries, so we need to regex out the number of loaded modules. llvm-svn: 349175
* [NativePDB] Add support for local variables.Zachary Turner2018-12-132-0/+193
| | | | | | | | | This patch adds support for parsing and evaluating local variables. using the native pdb plugin. Differential Revision: https://reviews.llvm.org/D55575 llvm-svn: 349067
* Classify tests in lit/ModulesPavel Labath2018-12-139-0/+0
| | | | | | | | We've recently developed a convention where the tests are placed into subfolders according to the object file type. This applies that convention to existing tests too. llvm-svn: 349027
* ELF: Clean up section type computationPavel Labath2018-12-124-16/+40
| | | | | | | | | | | | | Move code into a separate function, and replace the if-else chain with llvm::StringSwitch. A slight behavioral change is that now I use the section flags (SHF_TLS) instead of the section name to set the thread-specific property. There is no explanation in the original commit introducing this (r153537) as to why that was done this way, but the new behavior should be more correct. llvm-svn: 348936
* lldb-test: Add ability to dump subsectionsPavel Labath2018-12-121-0/+106
| | | | | | | | Previously, lldb-test would only print top-level sections. However, in lldb, sections can contain other sections. This teaches lldb-test to print nested sections too. llvm-svn: 348924
* build.py: Implement "gcc" builderPavel Labath2018-12-125-53/+114
| | | | | | | | | | | | | | | | Summary: This implements the gcc builder in build.py script to allow it to compile host executables when running on a non-windows host. Where it made sense, I tried to share code with the msvc builder by moving stuff to the base class. Reviewers: zturner Subscribers: mehdi_amini, dexonsmith, lldb-commits Differential Revision: https://reviews.llvm.org/D55430 llvm-svn: 348918
* Rewrite pexpect-based test in LIT/FileCheck.Adrian Prantl2018-12-103-0/+36
| | | | | | | pexecpt-based tests are flakey because they involve timeouts and this test is eprfectly serializable. llvm-svn: 348808
* Re-commit "Introduce ObjectFileBreakpad"Pavel Labath2018-12-108-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This re-commits r348592, which was reverted due to a failing test on macos. The issue was that I was passing a null pointer for the "CreateMemoryInstance" callback when registering ObjectFileBreakpad, which caused crashes when attemping to load modules from memory. The correct thing to do is to pass a callback which always returns a null pointer (as breakpad files are never loaded in inferior memory). It turns out that there is only one test which exercises this code path, and it's mac-only, so I've create a new test which should run everywhere (except windows, as one cannot delete an executable which is being run). Unfortunately, this test still fails on linux for other reasons, but at least it gives us something to aim for. The original commit message was: This patch adds the scaffolding necessary for lldb to recognise symbol files generated by breakpad. These (textual) files contain just enough information to be able to produce a backtrace from a crash dump. This information includes: - UUID, architecture and name of the module - line tables - list of symbols - unwind information A minimal breakpad file could look like this: MODULE Linux x86_64 0000000024B5D199F0F766FFFFFF5DC30 a.out INFO CODE_ID 00000000B52499D1F0F766FFFFFF5DC3 FILE 0 /tmp/a.c FUNC 1010 10 0 _start 1010 4 4 0 1014 5 5 0 1019 5 6 0 101e 2 7 0 PUBLIC 1010 0 _start STACK CFI INIT 1010 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^ STACK CFI 1011 $rbp: .cfa -16 + ^ .cfa: $rsp 16 + STACK CFI 1014 .cfa: $rbp 16 + Even though this data would normally be considered "symbol" information, in the current lldb infrastructure it is assumed every SymbolFile object is backed by an ObjectFile instance. So, in order to better interoperate with the rest of the code (particularly symbol vendors). In this patch I just parse the breakpad header, which is enough to populate the UUID and architecture fields of the ObjectFile interface. The rough plan for followup patches is to expose the individual parts of the breakpad file as ObjectFile "sections", which can then be used by other parts of the codebase (SymbolFileBreakpad ?) to vend the necessary information. Reviewers: clayborg, zturner, lemo, amccarth Subscribers: mgorny, fedor.sergeev, markmentovai, lldb-commits Differential Revision: https://reviews.llvm.org/D55214 llvm-svn: 348773
* [lit] Fix case-insensitive testStella Stamenova2018-12-071-4/+1
| | | | | | The test still only passes when not run from VS because the previous patch did not remove the original build commands.... This also simplifies the build command by removing some defaults llvm-svn: 348664
* [NativePDB] Reconstruct function declarations from debug info.Zachary Turner2018-12-075-1/+45
| | | | | | | | | | | | Previously we would create an lldb::Function object for each function parsed, but we would not add these to the clang AST. This is a first step towards getting local variable support working, as we first need an AST decl so that when we create local variable entries, they have the proper DeclContext. Differential Revision: https://reviews.llvm.org/D55384 llvm-svn: 348631
* Revert "Introduce ObjectFileBreakpad"Shafik Yaghmour2018-12-078-55/+0
| | | | | | | | This reverts commit 5e056e624cc57bb22a4c29a70b522783c6242293. Reverting because this lldb cmake bot: http://lab.llvm.org:8080/green/view/LLDB/job/lldb-cmake/13712/ llvm-svn: 348629
* Introduce ObjectFileBreakpadPavel Labath2018-12-078-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds the scaffolding necessary for lldb to recognise symbol files generated by breakpad. These (textual) files contain just enough information to be able to produce a backtrace from a crash dump. This information includes: - UUID, architecture and name of the module - line tables - list of symbols - unwind information A minimal breakpad file could look like this: MODULE Linux x86_64 0000000024B5D199F0F766FFFFFF5DC30 a.out INFO CODE_ID 00000000B52499D1F0F766FFFFFF5DC3 FILE 0 /tmp/a.c FUNC 1010 10 0 _start 1010 4 4 0 1014 5 5 0 1019 5 6 0 101e 2 7 0 PUBLIC 1010 0 _start STACK CFI INIT 1010 10 .cfa: $rsp 8 + .ra: .cfa -8 + ^ STACK CFI 1011 $rbp: .cfa -16 + ^ .cfa: $rsp 16 + STACK CFI 1014 .cfa: $rbp 16 + Even though this data would normally be considered "symbol" information, in the current lldb infrastructure it is assumed every SymbolFile object is backed by an ObjectFile instance. So, in order to better interoperate with the rest of the code (particularly symbol vendors). In this patch I just parse the breakpad header, which is enough to populate the UUID and architecture fields of the ObjectFile interface. The rough plan for followup patches is to expose the individual parts of the breakpad file as ObjectFile "sections", which can then be used by other parts of the codebase (SymbolFileBreakpad ?) to vend the necessary information. Reviewers: clayborg, zturner, lemo, amccarth Subscribers: mgorny, fedor.sergeev, markmentovai, lldb-commits Differential Revision: https://reviews.llvm.org/D55214 llvm-svn: 348592
* [lit] Use the build.py script in the case-insensitive testStella Stamenova2018-12-061-2/+3
| | | | | | This makes the test build correctly regardless of whether we use VS or ninja to run the tests llvm-svn: 348544
* [pecoff] Implement ObjectFilePECOFF::GetDependedModules()Aaron Smith2018-12-063-0/+343
| | | | | | | | | | | | | | | | | | Summary: This parses entries in pecoff import tables for imported DLLs and is intended as the first step to allow LLDB to load a PE's shared modules when creating a target on the LLDB console. Reviewers: rnk, zturner, aleksandr.urakov, lldb-commits, labath, asmith Reviewed By: labath, asmith Subscribers: labath, lemo, clayborg, Hui, mgorny, mgrang, teemperor Differential Revision: https://reviews.llvm.org/D53094 llvm-svn: 348527
* Fix line endings in build.pyZachary Turner2018-12-061-1/+1
| | | | llvm-svn: 348514
* [build.py] Embed the output file name in generated object file names.Zachary Turner2018-12-064-20/+30
| | | | | | | | | | | | | | | | | | In compile-and-link mode, the user doesn't specify the name of the object files to generate, because there could be multiple inputs on a single command line and this would be hard to specify. So the script just tries to be smart and figure out the best object file names. However, if two build scripts are running in parallel and using the same source files as input, they would previously race to write the same object files, since the computed name only considered the source file names when computing the object file names. With this patch, we also consider the final executable name. In a way, this "namespaces" the generated object files so that as long as the final executable file names don't clash, the intermediate object file names won't clash either. llvm-svn: 348511
* Remove REQUIRES: darwin from a couple of MachO testsPavel Labath2018-12-062-2/+0
| | | | | | lldb is able to parse MachO files also on other platforms nowadays. llvm-svn: 348476
* disable toolchain-clang-cl.test on non-windowsPavel Labath2018-12-061-1/+1
| | | | | | The recently added test fail on non-windows platforms. llvm-svn: 348474
* [PDB] Make PDB lit tests use the new builderAleksandr Urakov2018-12-0515-44/+33
| | | | | | | | | | | | Reviewers: zturner, stella.stamenova Reviewed By: zturner Tags: #lldb Differential Revision: https://reviews.llvm.org/D54942 llvm-svn: 348386
OpenPOWER on IntegriCloud