aboutsummaryrefslogtreecommitdiff
path: root/gdb/thread.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2020-07-09 20:12:15 +0100
committerPedro Alves <pedro@palves.net>2020-10-30 01:26:49 +0000
commitd70bdd3cc4cfdfd30bed44a271ff80f98b96eebf (patch)
tree47a5cc9c799d639f262fe71b1cb3f8b43de136d8 /gdb/thread.c
parent79952e69634bd02029e79676a38915de60052e89 (diff)
downloadgdb-d70bdd3cc4cfdfd30bed44a271ff80f98b96eebf.zip
gdb-d70bdd3cc4cfdfd30bed44a271ff80f98b96eebf.tar.gz
gdb-d70bdd3cc4cfdfd30bed44a271ff80f98b96eebf.tar.bz2
Move lookup_selected_frame to frame.c
This function is now external, and isn't really threads related. Move it to frame.c. gdb/ChangeLog: * thread.c (lookup_selected_frame): Move ... * frame.c (lookup_selected_frame): ... here. Change-Id: Ia96b79c15767337c68efd3358bcc715ce8e26c15
Diffstat (limited to 'gdb/thread.c')
-rw-r--r--gdb/thread.c63
1 files changed, 0 insertions, 63 deletions
diff --git a/gdb/thread.c b/gdb/thread.c
index 193f9d4..32d14e8 100644
--- a/gdb/thread.c
+++ b/gdb/thread.c
@@ -1328,69 +1328,6 @@ switch_to_thread (process_stratum_target *proc_target, ptid_t ptid)
/* See frame.h. */
void
-lookup_selected_frame (struct frame_id a_frame_id, int frame_level)
-{
- struct frame_info *frame = NULL;
- int count;
-
- /* This either means there was no selected frame, or the selected
- frame was the current frame. In either case, select the current
- frame. */
- if (frame_level == -1)
- {
- select_frame (get_current_frame ());
- return;
- }
-
- /* select_frame never saves 0 in SELECTED_FRAME_LEVEL, so we
- shouldn't see it here. */
- gdb_assert (frame_level > 0);
-
- /* Restore by level first, check if the frame id is the same as
- expected. If that fails, try restoring by frame id. If that
- fails, nothing to do, just warn the user. */
-
- count = frame_level;
- frame = find_relative_frame (get_current_frame (), &count);
- if (count == 0
- && frame != NULL
- /* The frame ids must match - either both valid or both outer_frame_id.
- The latter case is not failsafe, but since it's highly unlikely
- the search by level finds the wrong frame, it's 99.9(9)% of
- the time (for all practical purposes) safe. */
- && frame_id_eq (get_frame_id (frame), a_frame_id))
- {
- /* Cool, all is fine. */
- select_frame (frame);
- return;
- }
-
- frame = frame_find_by_id (a_frame_id);
- if (frame != NULL)
- {
- /* Cool, refound it. */
- select_frame (frame);
- return;
- }
-
- /* Nothing else to do, the frame layout really changed. Select the
- innermost stack frame. */
- select_frame (get_current_frame ());
-
- /* Warn the user. */
- if (frame_level > 0 && !current_uiout->is_mi_like_p ())
- {
- warning (_("Couldn't restore frame #%d in "
- "current thread. Bottom (innermost) frame selected:"),
- frame_level);
- /* For MI, we should probably have a notification about
- current frame change. But this error is not very
- likely, so don't bother for now. */
- print_stack_frame (get_selected_frame (NULL), 1, SRC_AND_LOC, 1);
- }
-}
-
-void
scoped_restore_current_thread::restore ()
{
/* If an entry of thread_info was previously selected, it won't be