llvm-project/lldb/lit
Pavel Labath ee7ceacaca minidump: Add ability to attach (breakpad) symbol files to placeholder modules
This re-commits r354263, which was because it uncovered with handling of
modules with empty (zero) UUIDs. This would cause us to treat two
modules as intentical even though they were not. This caused an assert
in PlaceholderObjectFile::SetLoadAddress to fire, because we were trying
to load the module twice even though it was designed to be only loaded
at a specific address. (The same problem also existed with the previous
implementation, but it had no asserts to warn us about this.) These
issues have now been fixed in r356896.

windows bot. The issue there was that ObjectFilePECOFF vended its base
address through the incorrect interface. SymbolFilePDB depended on that,
which lead to assertion failures when SymbolFilePDB was attempting to
use the placeholder object files as a base. This has been fixed in
r354258

The original commit message was:

The reason this wasn't working was that ProcessMinidump was creating odd
object-file-less modules, and SymbolFileBreakpad required the module to
have an associated object file because it needed to get its base
address.

This fixes that by introducing a PlaceholderObjectFile to serve as a
dummy object file. The general idea for this is taken from D55142, but
I've reworked it a bit to avoid the need for the PlaceholderModule
class. Now that we have an object file, our modules are sufficiently
similar to regular modules that we can use the regular Module class
almost out of the box -- the only thing I needed to tweak was the
Module::CreateModuleFromObjectFile functon to set the module's FileSpec
in addition to it's architecture. This wasn't needed for ObjectFileJIT
(the other user of CreateModuleFromObjectFile), but it shouldn't hurt it
either, and the change seems like a straightforward extension of this
function.

Reviewers: clayborg, lemo, amccarth

Subscribers: lldb-commits

Differential Revision: https://reviews.llvm.org/D57751

llvm-svn: 357060
2019-03-27 10:54:10 +00:00
..
Breakpoint build.py: Implement "gcc" builder 2018-12-12 08:54:14 +00:00
BuildScript [lldb] [lit] Attempt to fix regex in toolchain-clang.test 2019-03-06 14:49:48 +00:00
Commands Quiet command regex instructions during batch execution 2019-03-10 23:15:48 +00:00
Driver Update the lldb driver to support the -O and -S options when passing --repl 2019-03-25 15:38:18 +00:00
ExecControl/StopHook This test is failing on and off on the bots. 2019-03-12 23:15:48 +00:00
Expr [lit] Make sure tests are actually skipped on darwin and windows. 2019-01-17 21:57:33 +00:00
Heap Fix lldb's macosx/heap.py cstr command. 2018-12-17 18:21:51 +00:00
Minidump minidump: Add ability to attach (breakpad) symbol files to placeholder modules 2019-03-27 10:54:10 +00:00
Modules [lldb] [ObjectFile/ELF] Fix recognizing NetBSD images 2019-02-20 14:31:06 +00:00
Python Avoid using -S in combination with "script"; it's unreliable. 2019-03-07 00:46:56 +00:00
Quit [lldb] Update shebang python2 -> python 2019-01-26 01:05:02 +00:00
Reproducer [Reproducers] Properly handle QEnvironment packets 2019-03-21 04:08:31 +00:00
Settings Refactor the lit configuration files 2018-11-02 17:49:01 +00:00
Suite [lldb] [test] Pass appropriate -L&-Wl,-rpath for libc++ on NetBSD 2019-03-06 14:03:18 +00:00
SymbolFile Reinitialize UnwindTable when the SymbolFile changes 2019-03-18 10:45:02 +00:00
Unit [CMake] In standalone builds, LLVM_BINARY_DIR should point to LLVM's binary directory 2019-01-09 16:25:37 +00:00
helper Sanity check --max-gdbserver-port 2019-03-06 21:52:19 +00:00
tools [lldb-instr] Support LLDB_RECORD_DUMMY 2019-03-08 18:33:40 +00:00
CMakeLists.txt [CMake] Quick-Fix targets don't exist when building against LLVM install-tree with LLDB_INCLUDE_TESTS=ON 2019-01-28 16:15:27 +00:00
lit-lldb-init Add EchoCommentCommands to CommandInterpreterRunOptions in addition to the existing EchoCommands and expose both as interpreter settings. 2018-10-05 16:49:47 +00:00
lit.cfg.py Fix clang test suite on Windows by reverting part of r347216 2018-11-19 19:36:28 +00:00
lit.site.cfg.py.in [lldb] [test] Skip lldb-mi test if LLDB_DISABLE_PYTHON is used 2019-02-11 14:09:43 +00:00