Adding a new Minidump post-mortem debugging plugin
authorDimitar Vlahovski <dvlahovski@google.com>
Tue, 4 Oct 2016 21:02:13 +0000 (21:02 +0000)
committerDimitar Vlahovski <dvlahovski@google.com>
Tue, 4 Oct 2016 21:02:13 +0000 (21:02 +0000)
commit8cabfb764d6b0390038f2d0af6f29781b4b2294b
treed5f809b2ae4a5dce6cb4e632e95b8b673547f733
parent625fba88406e3ff47ceb63b7d36d5db756ec44cf
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
17 files changed:
lldb/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/Makefile [new file with mode: 0644]
lldb/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/TestMiniDumpNew.py [new file with mode: 0644]
lldb/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/linux-x86_64.cpp [new file with mode: 0644]
lldb/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/linux-x86_64.dmp [new file with mode: 0644]
lldb/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/linux-x86_64_not_crashed.cpp [new file with mode: 0644]
lldb/packages/Python/lldbsuite/test/functionalities/postmortem/minidump-new/linux-x86_64_not_crashed.dmp [new file with mode: 0644]
lldb/source/API/SystemInitializerFull.cpp
lldb/source/Plugins/Process/minidump/CMakeLists.txt
lldb/source/Plugins/Process/minidump/MinidumpParser.cpp
lldb/source/Plugins/Process/minidump/MinidumpParser.h
lldb/source/Plugins/Process/minidump/MinidumpTypes.cpp
lldb/source/Plugins/Process/minidump/MinidumpTypes.h
lldb/source/Plugins/Process/minidump/ProcessMinidump.cpp [new file with mode: 0644]
lldb/source/Plugins/Process/minidump/ProcessMinidump.h [new file with mode: 0644]
lldb/source/Plugins/Process/minidump/ThreadMinidump.cpp [new file with mode: 0644]
lldb/source/Plugins/Process/minidump/ThreadMinidump.h [new file with mode: 0644]
lldb/unittests/Process/minidump/MinidumpParserTest.cpp