@@ -5258,7 +5258,8 @@ class ThreadsTreeDelegate : public TreeDelegate {
5258
5258
for (size_t i = 0 ; i < num_threads; ++i) {
5259
5259
ThreadSP thread = threads.GetThreadAtIndex (i);
5260
5260
if (selected_thread->GetID () == thread->GetID ()) {
5261
- selected_item = &root[i][thread->GetSelectedFrameIndex ()];
5261
+ selected_item =
5262
+ &root[i][thread->GetSelectedFrameIndex (SelectMostRelevantFrame)];
5262
5263
selection_index = selected_item->GetRowIndex ();
5263
5264
return ;
5264
5265
}
@@ -6410,7 +6411,8 @@ class ApplicationDelegate : public WindowDelegate, public MenuDelegate {
6410
6411
if (process && process->IsAlive () &&
6411
6412
StateIsStoppedState (process->GetState (), true )) {
6412
6413
Thread *thread = exe_ctx.GetThreadPtr ();
6413
- uint32_t frame_idx = thread->GetSelectedFrameIndex ();
6414
+ uint32_t frame_idx =
6415
+ thread->GetSelectedFrameIndex (SelectMostRelevantFrame);
6414
6416
exe_ctx.GetThreadRef ().StepOut (frame_idx);
6415
6417
}
6416
6418
}
@@ -6826,7 +6828,7 @@ class SourceFileWindowDelegate : public WindowDelegate {
6826
6828
if (process_alive) {
6827
6829
thread = exe_ctx.GetThreadPtr ();
6828
6830
if (thread) {
6829
- frame_sp = thread->GetSelectedFrame ();
6831
+ frame_sp = thread->GetSelectedFrame (SelectMostRelevantFrame );
6830
6832
auto tid = thread->GetID ();
6831
6833
thread_changed = tid != m_tid;
6832
6834
m_tid = tid;
@@ -7373,7 +7375,8 @@ class SourceFileWindowDelegate : public WindowDelegate {
7373
7375
if (exe_ctx.HasThreadScope () &&
7374
7376
StateIsStoppedState (exe_ctx.GetProcessRef ().GetState (), true )) {
7375
7377
Thread *thread = exe_ctx.GetThreadPtr ();
7376
- uint32_t frame_idx = thread->GetSelectedFrameIndex ();
7378
+ uint32_t frame_idx =
7379
+ thread->GetSelectedFrameIndex (SelectMostRelevantFrame);
7377
7380
exe_ctx.GetThreadRef ().StepOut (frame_idx);
7378
7381
}
7379
7382
}
@@ -7412,15 +7415,16 @@ class SourceFileWindowDelegate : public WindowDelegate {
7412
7415
m_debugger.GetCommandInterpreter ().GetExecutionContext ();
7413
7416
if (exe_ctx.HasThreadScope ()) {
7414
7417
Thread *thread = exe_ctx.GetThreadPtr ();
7415
- uint32_t frame_idx = thread->GetSelectedFrameIndex ();
7418
+ uint32_t frame_idx =
7419
+ thread->GetSelectedFrameIndex (SelectMostRelevantFrame);
7416
7420
if (frame_idx == UINT32_MAX)
7417
7421
frame_idx = 0 ;
7418
7422
if (c == ' u' && frame_idx + 1 < thread->GetStackFrameCount ())
7419
7423
++frame_idx;
7420
7424
else if (c == ' d' && frame_idx > 0 )
7421
7425
--frame_idx;
7422
7426
if (thread->SetSelectedFrameByIndex (frame_idx, true ))
7423
- exe_ctx.SetFrameSP (thread->GetSelectedFrame ());
7427
+ exe_ctx.SetFrameSP (thread->GetSelectedFrame (SelectMostRelevantFrame ));
7424
7428
}
7425
7429
}
7426
7430
return eKeyHandled;
0 commit comments