aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/API/SBThread.cpp
diff options
context:
space:
mode:
authorjimingham <jingham@apple.com>2024-07-03 10:45:20 -0700
committerGitHub <noreply@github.com>2024-07-03 10:45:20 -0700
commit845dee36ba4161df153ba05009cea615e20eda5a (patch)
treed222daf105b1ddb3196be682a786ef3be6da716e /lldb/source/API/SBThread.cpp
parent77d131eddb6ca9060c844fae9cb78779fa70c8f0 (diff)
downloadllvm-845dee36ba4161df153ba05009cea615e20eda5a.zip
llvm-845dee36ba4161df153ba05009cea615e20eda5a.tar.gz
llvm-845dee36ba4161df153ba05009cea615e20eda5a.tar.bz2
SBThread::StepInstruction shouldn't discard other plans (#97493)
This was just a typo, none of the external execution control functions should discard other plans. In particular, it means if you stop in a hand-called function and step an instruction, the function call thread plan gets unshipped, popping all the function call frames. I also added a test that asserts the correct behavior. I tested all the stepping operations even though only StepInstruction was wrong.
Diffstat (limited to 'lldb/source/API/SBThread.cpp')
-rw-r--r--lldb/source/API/SBThread.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lldb/source/API/SBThread.cpp b/lldb/source/API/SBThread.cpp
index ac3e2cd..5364336 100644
--- a/lldb/source/API/SBThread.cpp
+++ b/lldb/source/API/SBThread.cpp
@@ -722,7 +722,7 @@ void SBThread::StepInstruction(bool step_over, SBError &error) {
Thread *thread = exe_ctx.GetThreadPtr();
Status new_plan_status;
ThreadPlanSP new_plan_sp(thread->QueueThreadPlanForStepSingleInstruction(
- step_over, true, true, new_plan_status));
+ step_over, false, true, new_plan_status));
if (new_plan_status.Success())
error = ResumeNewPlan(exe_ctx, new_plan_sp.get());