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 {


        
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to