diff options
author | Dimitar Vlahovski <dvlahovski@google.com> | 2016-10-04 21:02:13 +0000 |
---|---|---|
committer | Dimitar Vlahovski <dvlahovski@google.com> | 2016-10-04 21:02:13 +0000 |
commit | 8cabfb764d6b0390038f2d0af6f29781b4b2294b (patch) | |
tree | d5f809b2ae4a5dce6cb4e632e95b8b673547f733 /lldb/source/API/SystemInitializerFull.cpp | |
parent | 625fba88406e3ff47ceb63b7d36d5db756ec44cf (diff) | |
download | bcm5719-llvm-8cabfb764d6b0390038f2d0af6f29781b4b2294b.tar.gz bcm5719-llvm-8cabfb764d6b0390038f2d0af6f29781b4b2294b.zip |
Adding a new Minidump post-mortem debugging plugin
Summary:
This plugin resembles the already existing Windows-only Minidump plugin.
The WinMinidumpPlugin uses the Windows API for parsing Minidumps
while this plugin is cross-platform because it includes a Minidump
parser (which is already commited)
It is able to produce a backtrace, to read the general puprose regiters,
inspect local variables, show image list, do memory reads, etc.
For now the only arch that this supports is x86 64 bit
This is because I have only written a register context for that arch.
Others will come in next CLs.
I copied the WinMinidump tests and adapted them a little bit for them to
work with the new plugin (and they pass)
I will add more tests, aiming for better code coverage.
There is still functionality to be added, see TODOs in code.
Reviewers: labath, zturner
Subscribers: beanz, mgorny, amccarth, lldb-commits, modocache
Differential Revision: https://reviews.llvm.org/D25196
llvm-svn: 283259
Diffstat (limited to 'lldb/source/API/SystemInitializerFull.cpp')
-rw-r--r-- | lldb/source/API/SystemInitializerFull.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lldb/source/API/SystemInitializerFull.cpp b/lldb/source/API/SystemInitializerFull.cpp index a297a7c111c..cfc7c2c1740 100644 --- a/lldb/source/API/SystemInitializerFull.cpp +++ b/lldb/source/API/SystemInitializerFull.cpp @@ -78,6 +78,7 @@ #include "Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h" #include "Plugins/Process/elf-core/ProcessElfCore.h" #include "Plugins/Process/gdb-remote/ProcessGDBRemote.h" +#include "Plugins/Process/minidump/ProcessMinidump.h" #include "Plugins/ScriptInterpreter/None/ScriptInterpreterNone.h" #include "Plugins/SymbolFile/DWARF/SymbolFileDWARF.h" #include "Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h" @@ -307,6 +308,7 @@ void SystemInitializerFull::Initialize() { #if defined(_MSC_VER) ProcessWinMiniDump::Initialize(); #endif + minidump::ProcessMinidump::Initialize(); MemoryHistoryASan::Initialize(); AddressSanitizerRuntime::Initialize(); ThreadSanitizerRuntime::Initialize(); @@ -429,9 +431,11 @@ void SystemInitializerFull::Terminate() { JITLoaderGDB::Terminate(); ProcessElfCore::Terminate(); + #if defined(_MSC_VER) ProcessWinMiniDump::Terminate(); #endif + minidump::ProcessMinidump::Terminate(); MemoryHistoryASan::Terminate(); AddressSanitizerRuntime::Terminate(); ThreadSanitizerRuntime::Terminate(); |