summaryrefslogtreecommitdiffstats
path: root/lldb/source/API/SystemInitializerFull.cpp
diff options
context:
space:
mode:
authorDimitar Vlahovski <dvlahovski@google.com>2016-10-04 21:02:13 +0000
committerDimitar Vlahovski <dvlahovski@google.com>2016-10-04 21:02:13 +0000
commit8cabfb764d6b0390038f2d0af6f29781b4b2294b (patch)
treed5f809b2ae4a5dce6cb4e632e95b8b673547f733 /lldb/source/API/SystemInitializerFull.cpp
parent625fba88406e3ff47ceb63b7d36d5db756ec44cf (diff)
downloadbcm5719-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.cpp4
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();
OpenPOWER on IntegriCloud