mirror of
https://github.com/intel/llvm.git
synced 2026-01-15 12:25:46 +08:00
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.
This commit is contained in:
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user