public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] gdb: add invalidate_selected_frame function
@ 2022-12-07 16:54 Simon Marchi
0 siblings, 0 replies; only message in thread
From: Simon Marchi @ 2022-12-07 16:54 UTC (permalink / raw)
To: gdb-cvs
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=1de4b5156345d7cba14224ee12c1121ff061b066
commit 1de4b5156345d7cba14224ee12c1121ff061b066
Author: Simon Marchi <simon.marchi@polymtl.ca>
Date: Fri Dec 2 13:00:47 2022 -0500
gdb: add invalidate_selected_frame function
Instead of using `select_frame (nullptr)` to invalidate the selected
frame, introduce a function to do that. There is no change in behavior,
but it makes the intent a bit clearer. It also allows adding an assert
in select_frame that fi is not nullptr, so it avoids passing nullptr by
mistake.
Change-Id: I61643f46bc8eca428334513ebdaadab63997bdd0
Reviewed-By: Bruno Larsen <blarsen@redhat.com>
Diff:
---
gdb/frame.c | 16 ++++++++++++++--
gdb/frame.h | 3 +--
2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/gdb/frame.c b/gdb/frame.c
index b4079ef833e..6a6d968b9a9 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -1836,11 +1836,23 @@ deprecated_safe_get_selected_frame (void)
return get_selected_frame (NULL);
}
-/* Select frame FI (or NULL - to invalidate the selected frame). */
+/* Invalidate the selected frame. */
+
+static void
+invalidate_selected_frame ()
+{
+ selected_frame = nullptr;
+ selected_frame_level = -1;
+ selected_frame_id = null_frame_id;
+}
+
+/* See frame.h. */
void
select_frame (frame_info_ptr fi)
{
+ gdb_assert (fi != nullptr);
+
selected_frame = fi;
selected_frame_level = frame_relative_level (fi);
if (selected_frame_level == 0)
@@ -2012,7 +2024,7 @@ reinit_frame_cache (void)
annotate_frames_invalid ();
sentinel_frame = NULL; /* Invalidate cache */
- select_frame (NULL);
+ invalidate_selected_frame ();
frame_stash_invalidate ();
for (frame_info_ptr &iter : frame_info_ptr::frame_list)
diff --git a/gdb/frame.h b/gdb/frame.h
index 100ab1fe48e..cf8bbc6a52b 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -239,8 +239,7 @@ extern void reinit_frame_cache (void);
and then return that thread's previously selected frame. */
extern frame_info_ptr get_selected_frame (const char *message = nullptr);
-/* Select a specific frame. NULL implies re-select the inner most
- frame. */
+/* Select a specific frame. */
extern void select_frame (frame_info_ptr);
/* Save the frame ID and frame level of the selected frame in FRAME_ID
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-12-07 16:54 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-07 16:54 [binutils-gdb] gdb: add invalidate_selected_frame function Simon Marchi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).