[lldb] Make UnwindLLDB a non-plugin
authorPavel Labath <pavel@labath.sk>
Mon, 9 Mar 2020 13:36:15 +0000 (14:36 +0100)
committerPavel Labath <pavel@labath.sk>
Tue, 10 Mar 2020 12:56:15 +0000 (13:56 +0100)
commitd00dff88b402ea9074b87aa5d3faddfd50c4bc0f
treedeac41a38e5ceb9c1b33d4a0b7c8d3a01595352e
parent1fc5be06694fe3cbe9d2b60179c93a74d7083764
[lldb] Make UnwindLLDB a non-plugin

Summary:
This is the only real unwinder, and things have been this way for quite
a long time. At this point, the class has accumulated so many features
it is unlikely that anyone will want to reimplement the whole thing.

The class is also fairly closely coupled (through UnwindPlans and
FuncUnwinders) with a lot of other lldb components that it is hard to
imagine a different unwinder implementation being substantially
different without reimplementing all of those.

The existing unwinding functionality is nonetheless fairly complex and
there is space for adding more structure to it, but I believe a more
worthwhile effort would be to take the existing UnwindLLDB class and try
to break it down and introduce extension/customization points, instead
of writing a brand new Unwind implementation.

Reviewers: jasonmolenda, JDevlieghere, xiaobai

Subscribers: mgorny, lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D75848
lldb/include/lldb/Target/RegisterContextUnwind.h [moved from lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h with 91% similarity]
lldb/include/lldb/Target/UnwindLLDB.h [moved from lldb/source/Plugins/Process/Utility/UnwindLLDB.h with 90% similarity]
lldb/source/Plugins/Process/Utility/CMakeLists.txt
lldb/source/Target/CMakeLists.txt
lldb/source/Target/RegisterContextUnwind.cpp [moved from lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp with 95% similarity]
lldb/source/Target/Thread.cpp
lldb/source/Target/UnwindLLDB.cpp [moved from lldb/source/Plugins/Process/Utility/UnwindLLDB.cpp with 97% similarity]