summaryrefslogtreecommitdiff
path: root/lldb/source/Core/IOHandlerCursesGUI.cpp
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@centrum.cz>2022-04-03 20:19:10 +0200
committerLuboš Luňák <l.lunak@centrum.cz>2022-04-05 08:29:13 +0200
commit76bc7729208976e6ff6bc28b08e460d97cab5bb3 (patch)
treeed9acde9e49bf11745079e08be40eb51c10c8860 /lldb/source/Core/IOHandlerCursesGUI.cpp
parentf90fa55569fc8fc3b44512823ed9e2a0d1243826 (diff)
[lldb][gui] make 'step out' step out of the selected frame
Differential Revision: https://reviews.llvm.org/D123001
Diffstat (limited to 'lldb/source/Core/IOHandlerCursesGUI.cpp')
-rw-r--r--lldb/source/Core/IOHandlerCursesGUI.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/lldb/source/Core/IOHandlerCursesGUI.cpp b/lldb/source/Core/IOHandlerCursesGUI.cpp
index 7fc23292983f..caf88c7fdf37 100644
--- a/lldb/source/Core/IOHandlerCursesGUI.cpp
+++ b/lldb/source/Core/IOHandlerCursesGUI.cpp
@@ -6402,8 +6402,11 @@ public:
if (exe_ctx.HasThreadScope()) {
Process *process = exe_ctx.GetProcessPtr();
if (process && process->IsAlive() &&
- StateIsStoppedState(process->GetState(), true))
- exe_ctx.GetThreadRef().StepOut();
+ StateIsStoppedState(process->GetState(), true)) {
+ Thread *thread = exe_ctx.GetThreadPtr();
+ uint32_t frame_idx = thread->GetSelectedFrameIndex();
+ exe_ctx.GetThreadRef().StepOut(frame_idx);
+ }
}
}
return MenuActionResult::Handled;
@@ -7361,7 +7364,9 @@ public:
m_debugger.GetCommandInterpreter().GetExecutionContext();
if (exe_ctx.HasThreadScope() &&
StateIsStoppedState(exe_ctx.GetProcessRef().GetState(), true)) {
- exe_ctx.GetThreadRef().StepOut();
+ Thread *thread = exe_ctx.GetThreadPtr();
+ uint32_t frame_idx = thread->GetSelectedFrameIndex();
+ exe_ctx.GetThreadRef().StepOut(frame_idx);
}
}
return eKeyHandled;