All UnwindPlan objects are now passed around as shared pointers.
ArchDefaultUnwindPlan plug-in interfaces are now cached per architecture
instead of being leaked for every frame.
Split the ArchDefaultUnwindPlan_x86 into ArchDefaultUnwindPlan_x86_64 and
ArchDefaultUnwindPlan_i386 interfaces.
There were sporadic crashes that were due to something leaking or being
destroyed when doing stack crawls. This patch should clear up these issues.
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@125541 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Plugins/Process/Utility/UnwindLLDB.h b/source/Plugins/Process/Utility/UnwindLLDB.h
index 7d1f070..1c01a3d 100644
--- a/source/Plugins/Process/Utility/UnwindLLDB.h
+++ b/source/Plugins/Process/Utility/UnwindLLDB.h
@@ -10,15 +10,15 @@
#ifndef lldb_UnwindLLDB_h_
#define lldb_UnwindLLDB_h_
-#include "lldb/lldb-private.h"
-#include "lldb/lldb-types.h"
-#include "lldb/Target/Unwind.h"
-#include "lldb/Symbol/FuncUnwinders.h"
-#include "lldb/Symbol/UnwindPlan.h"
-#include "RegisterContextLLDB.h"
-#include "lldb/Target/RegisterContext.h"
#include <vector>
+#include "lldb/lldb-include.h"
+#include "lldb/Symbol/FuncUnwinders.h"
+#include "lldb/Symbol/UnwindPlan.h"
+#include "lldb/Target/RegisterContext.h"
+#include "lldb/Target/Unwind.h"
+
+#include "RegisterContextLLDB.h"
namespace lldb_private {
@@ -53,7 +53,7 @@
lldb::addr_t start_pc; // The start address of the function/symbol for this frame - current pc if unknown
lldb::addr_t cfa; // The canonical frame address for this stack frame
lldb_private::SymbolContext sctx; // A symbol context we'll contribute to & provide to the StackFrame creation
- lldb::RegisterContextSP reg_ctx; // These are all RegisterContextLLDB's
+ RegisterContextLLDB::SharedPtr reg_ctx; // These are all RegisterContextLLDB's
Cursor () : start_pc (LLDB_INVALID_ADDRESS), cfa (LLDB_INVALID_ADDRESS), sctx(), reg_ctx() { }
private: