Skip to content

Commit 4a0d13e

Browse files
committed
[lldb][Target] Clear selected frame index after a StopInfo::PerformAction
1 parent 491d3df commit 4a0d13e

File tree

4 files changed

+14
-0
lines changed

4 files changed

+14
-0
lines changed

lldb/include/lldb/Target/StackFrameList.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@ class StackFrameList {
4646
/// Mark a stack frame as the currently selected frame and return its index.
4747
uint32_t SetSelectedFrame(lldb_private::StackFrame *frame);
4848

49+
/// Resets the selected frame index of this object.
50+
void ClearSelectedFrameIndex();
51+
4952
/// Get the currently selected frame index.
5053
/// We should only call SelectMostRelevantFrame if (a) the user hasn't already
5154
/// selected a frame, and (b) if this really is a user facing

lldb/include/lldb/Target/Thread.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -479,6 +479,11 @@ class Thread : public std::enable_shared_from_this<Thread>,
479479
bool SetSelectedFrameByIndexNoisily(uint32_t frame_idx,
480480
Stream &output_stream);
481481

482+
/// Resets the selected frame index of this object.
483+
void ClearSelectedFrameIndex() {
484+
return GetStackFrameList()->ClearSelectedFrameIndex();
485+
}
486+
482487
void SetDefaultFileAndLineToSelectedFrame() {
483488
GetStackFrameList()->SetDefaultFileAndLineToSelectedFrame();
484489
}

lldb/source/Target/Process.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4295,6 +4295,8 @@ bool Process::ProcessEventData::ShouldStop(Event *event_ptr,
42954295
// appropriately. We also need to stop processing actions, since they
42964296
// aren't expecting the target to be running.
42974297

4298+
thread_sp->ClearSelectedFrameIndex();
4299+
42984300
// FIXME: we might have run.
42994301
if (stop_info_sp->HasTargetRunSinceMe()) {
43004302
SetRestarted(true);

lldb/source/Target/StackFrameList.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -936,3 +936,7 @@ size_t StackFrameList::GetStatus(Stream &strm, uint32_t first_frame,
936936
strm.IndentLess();
937937
return num_frames_displayed;
938938
}
939+
940+
void StackFrameList::ClearSelectedFrameIndex() {
941+
m_selected_frame_idx.reset();
942+
}

0 commit comments

Comments
 (0)