@@ -5258,7 +5258,8 @@ class ThreadsTreeDelegate : public TreeDelegate {
52585258 for (size_t i = 0 ; i < num_threads; ++i) {
52595259 ThreadSP thread = threads.GetThreadAtIndex (i);
52605260 if (selected_thread->GetID () == thread->GetID ()) {
5261- selected_item = &root[i][thread->GetSelectedFrameIndex ()];
5261+ selected_item =
5262+ &root[i][thread->GetSelectedFrameIndex (SelectMostRelevantFrame)];
52625263 selection_index = selected_item->GetRowIndex ();
52635264 return ;
52645265 }
@@ -6410,7 +6411,8 @@ class ApplicationDelegate : public WindowDelegate, public MenuDelegate {
64106411 if (process && process->IsAlive () &&
64116412 StateIsStoppedState (process->GetState (), true )) {
64126413 Thread *thread = exe_ctx.GetThreadPtr ();
6413- uint32_t frame_idx = thread->GetSelectedFrameIndex ();
6414+ uint32_t frame_idx =
6415+ thread->GetSelectedFrameIndex (SelectMostRelevantFrame);
64146416 exe_ctx.GetThreadRef ().StepOut (frame_idx);
64156417 }
64166418 }
@@ -6826,7 +6828,7 @@ class SourceFileWindowDelegate : public WindowDelegate {
68266828 if (process_alive) {
68276829 thread = exe_ctx.GetThreadPtr ();
68286830 if (thread) {
6829- frame_sp = thread->GetSelectedFrame ();
6831+ frame_sp = thread->GetSelectedFrame (SelectMostRelevantFrame );
68306832 auto tid = thread->GetID ();
68316833 thread_changed = tid != m_tid;
68326834 m_tid = tid;
@@ -7373,7 +7375,8 @@ class SourceFileWindowDelegate : public WindowDelegate {
73737375 if (exe_ctx.HasThreadScope () &&
73747376 StateIsStoppedState (exe_ctx.GetProcessRef ().GetState (), true )) {
73757377 Thread *thread = exe_ctx.GetThreadPtr ();
7376- uint32_t frame_idx = thread->GetSelectedFrameIndex ();
7378+ uint32_t frame_idx =
7379+ thread->GetSelectedFrameIndex (SelectMostRelevantFrame);
73777380 exe_ctx.GetThreadRef ().StepOut (frame_idx);
73787381 }
73797382 }
@@ -7412,15 +7415,16 @@ class SourceFileWindowDelegate : public WindowDelegate {
74127415 m_debugger.GetCommandInterpreter ().GetExecutionContext ();
74137416 if (exe_ctx.HasThreadScope ()) {
74147417 Thread *thread = exe_ctx.GetThreadPtr ();
7415- uint32_t frame_idx = thread->GetSelectedFrameIndex ();
7418+ uint32_t frame_idx =
7419+ thread->GetSelectedFrameIndex (SelectMostRelevantFrame);
74167420 if (frame_idx == UINT32_MAX)
74177421 frame_idx = 0 ;
74187422 if (c == ' u' && frame_idx + 1 < thread->GetStackFrameCount ())
74197423 ++frame_idx;
74207424 else if (c == ' d' && frame_idx > 0 )
74217425 --frame_idx;
74227426 if (thread->SetSelectedFrameByIndex (frame_idx, true ))
7423- exe_ctx.SetFrameSP (thread->GetSelectedFrame ());
7427+ exe_ctx.SetFrameSP (thread->GetSelectedFrame (SelectMostRelevantFrame ));
74247428 }
74257429 }
74267430 return eKeyHandled;
0 commit comments