[Lldb-commits] [lldb] f7de4b5 - Thread Plans pushed by a scripted plan should be private plans.

Jim Ingham via lldb-commits lldb-commits at lists.llvm.org
Fri Apr 10 18:15:23 PDT 2020


Author: Jim Ingham
Date: 2020-04-10T18:15:03-07:00
New Revision: f7de4b5d6bce8c33ac3e18a41abcf5268a29f461

URL: https://github.com/llvm/llvm-project/commit/f7de4b5d6bce8c33ac3e18a41abcf5268a29f461
DIFF: https://github.com/llvm/llvm-project/commit/f7de4b5d6bce8c33ac3e18a41abcf5268a29f461.diff

LOG: Thread Plans pushed by a scripted plan should be private plans.

If a plan is not private, "thread plan discard" can discard it.  It would
not be hard to write reliable scripted plan if its subplans could get
removed out from under it.

Added: 
    

Modified: 
    lldb/source/API/SBThreadPlan.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/source/API/SBThreadPlan.cpp b/lldb/source/API/SBThreadPlan.cpp
index b93c31763e59..1a947bbc2608 100644
--- a/lldb/source/API/SBThreadPlan.cpp
+++ b/lldb/source/API/SBThreadPlan.cpp
@@ -237,7 +237,9 @@ SBThreadPlan SBThreadPlan::QueueThreadPlanForStepOverRange(
 
     if (plan_status.Fail())
       error.SetErrorString(plan_status.AsCString());
-
+    else
+      plan.m_opaque_sp->SetPrivate(true);
+    
     return LLDB_RECORD_RESULT(plan);
   } else {
     return LLDB_RECORD_RESULT(SBThreadPlan());
@@ -281,6 +283,8 @@ SBThreadPlan::QueueThreadPlanForStepInRange(SBAddress &sb_start_address,
 
     if (plan_status.Fail())
       error.SetErrorString(plan_status.AsCString());
+    else
+      plan.m_opaque_sp->SetPrivate(true);
 
     return LLDB_RECORD_RESULT(plan);
   } else {
@@ -321,6 +325,8 @@ SBThreadPlan::QueueThreadPlanForStepOut(uint32_t frame_idx_to_step_to,
 
     if (plan_status.Fail())
       error.SetErrorString(plan_status.AsCString());
+    else
+      plan.m_opaque_sp->SetPrivate(true);
 
     return LLDB_RECORD_RESULT(plan);
   } else {
@@ -356,6 +362,8 @@ SBThreadPlan SBThreadPlan::QueueThreadPlanForRunToAddress(SBAddress sb_address,
 
     if (plan_status.Fail())
       error.SetErrorString(plan_status.AsCString());
+    else
+      plan.m_opaque_sp->SetPrivate(true);
 
     return LLDB_RECORD_RESULT(plan);
   } else {
@@ -390,6 +398,8 @@ SBThreadPlan::QueueThreadPlanForStepScripted(const char *script_class_name,
 
     if (plan_status.Fail())
       error.SetErrorString(plan_status.AsCString());
+    else
+      plan.m_opaque_sp->SetPrivate(true);
 
     return LLDB_RECORD_RESULT(plan);
   } else {
@@ -415,6 +425,8 @@ SBThreadPlan::QueueThreadPlanForStepScripted(const char *script_class_name,
 
     if (plan_status.Fail())
       error.SetErrorString(plan_status.AsCString());
+    else
+      plan.m_opaque_sp->SetPrivate(true);
 
     return LLDB_RECORD_RESULT(plan);
   } else {


        


More information about the lldb-commits mailing list