Skip to content

Commit f7de4b5

Browse files
committed
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.
1 parent ed03d94 commit f7de4b5

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

lldb/source/API/SBThreadPlan.cpp

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,9 @@ SBThreadPlan SBThreadPlan::QueueThreadPlanForStepOverRange(
237237

238238
if (plan_status.Fail())
239239
error.SetErrorString(plan_status.AsCString());
240-
240+
else
241+
plan.m_opaque_sp->SetPrivate(true);
242+
241243
return LLDB_RECORD_RESULT(plan);
242244
} else {
243245
return LLDB_RECORD_RESULT(SBThreadPlan());
@@ -281,6 +283,8 @@ SBThreadPlan::QueueThreadPlanForStepInRange(SBAddress &sb_start_address,
281283

282284
if (plan_status.Fail())
283285
error.SetErrorString(plan_status.AsCString());
286+
else
287+
plan.m_opaque_sp->SetPrivate(true);
284288

285289
return LLDB_RECORD_RESULT(plan);
286290
} else {
@@ -321,6 +325,8 @@ SBThreadPlan::QueueThreadPlanForStepOut(uint32_t frame_idx_to_step_to,
321325

322326
if (plan_status.Fail())
323327
error.SetErrorString(plan_status.AsCString());
328+
else
329+
plan.m_opaque_sp->SetPrivate(true);
324330

325331
return LLDB_RECORD_RESULT(plan);
326332
} else {
@@ -356,6 +362,8 @@ SBThreadPlan SBThreadPlan::QueueThreadPlanForRunToAddress(SBAddress sb_address,
356362

357363
if (plan_status.Fail())
358364
error.SetErrorString(plan_status.AsCString());
365+
else
366+
plan.m_opaque_sp->SetPrivate(true);
359367

360368
return LLDB_RECORD_RESULT(plan);
361369
} else {
@@ -390,6 +398,8 @@ SBThreadPlan::QueueThreadPlanForStepScripted(const char *script_class_name,
390398

391399
if (plan_status.Fail())
392400
error.SetErrorString(plan_status.AsCString());
401+
else
402+
plan.m_opaque_sp->SetPrivate(true);
393403

394404
return LLDB_RECORD_RESULT(plan);
395405
} else {
@@ -415,6 +425,8 @@ SBThreadPlan::QueueThreadPlanForStepScripted(const char *script_class_name,
415425

416426
if (plan_status.Fail())
417427
error.SetErrorString(plan_status.AsCString());
428+
else
429+
plan.m_opaque_sp->SetPrivate(true);
418430

419431
return LLDB_RECORD_RESULT(plan);
420432
} else {

0 commit comments

Comments
 (0)