diff options
author | Igor Kudrin <ikudrin@accesssoftek.com> | 2025-10-08 16:30:24 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-10-08 16:30:24 -0700 |
commit | 64ed3903bbb56dd74e120e84442f4bbaae777eb3 (patch) | |
tree | 65e09c2c4db6f6663b00478b34777796f37331a6 /llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp | |
parent | 2ff3db0387589a1760cb06d244a4dbbf8af02469 (diff) | |
download | llvm-64ed3903bbb56dd74e120e84442f4bbaae777eb3.zip llvm-64ed3903bbb56dd74e120e84442f4bbaae777eb3.tar.gz llvm-64ed3903bbb56dd74e120e84442f4bbaae777eb3.tar.bz2 |
[lldb] Fix stepping out if the return address is not allowed to stop at (#161982)
When a thread reaches a breakpoint at the return address set by
`ThreadPlanStepOut`, `ThreadPlanStepOut::ShouldStop()` calls
`ThreadPlanShouldStopHere::InvokeShouldStopHereCallback()`, and if it
returns `false`, `ThreadPlanShouldStopHere::QueueStepOutFromHerePlan()`
is called to queue a new plan to skip the corresponding range. Once the
new plan finishes, `ThreadPlanStepOut::ShouldStop()` should recheck the
stop condition; however, there is no code path in the method that sets
`done` to `true`. Before #126838, if `done` was `false`, the method checked
if a suitable frame had been reached. After the patch, the check is only
performed at a breakpoint; thus, the execution continues.
This patch causes `ThreadPlanStepOut::ShouldStop()` to recheck the stop
condition when `m_step_out_further_plan_sp` completes.
Diffstat (limited to 'llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp')
0 files changed, 0 insertions, 0 deletions