aboutsummaryrefslogtreecommitdiff
path: root/gdb/frame.h
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2002-11-29 19:15:16 +0000
committerAndrew Cagney <cagney@redhat.com>2002-11-29 19:15:16 +0000
commit6e7f8b9cbab2b8bc4517ece86ae0c7f4f7d7599a (patch)
treed289e7c47a3b1c9bc5837d95146dc7d0a917b9b3 /gdb/frame.h
parent805e2818d6d8eab9ceaf1754eda3ed59404ae39d (diff)
downloadgdb-6e7f8b9cbab2b8bc4517ece86ae0c7f4f7d7599a.zip
gdb-6e7f8b9cbab2b8bc4517ece86ae0c7f4f7d7599a.tar.gz
gdb-6e7f8b9cbab2b8bc4517ece86ae0c7f4f7d7599a.tar.bz2
2002-11-29 Andrew Cagney <ac131313@redhat.com>
* stack.c (selected_frame, select_frame): Move from here ... * frame.c (selected_frame, select_frame): ... to here. Include "language.h". * Makefile.in (frame.o): Update dependencies. * frame.c (get_selected_frame): New function. * frame.h (get_selected_frame): Declare. (deprecated_selected_frame): Rename selected_frame. * ada-lang.c, ada-tasks.c, breakpoint.c, corelow.c: Update. * eval.c, f-valprint.c, findvar.c, frame.c, frame.h: Update. * h8300-tdep.c, h8500-tdep.c, hppa-tdep.c, infcmd.c: Update. * inflow.c, infrun.c, macroscope.c, mips-tdep.c: Update. * mn10300-tdep.c, ocd.c, regcache.h, remote-e7000.c: Update. * remote-mips.c, remote-rdp.c, sh-tdep.c, sparc-tdep.c: Update. * stack.c, thread.c, tracepoint.c, valops.c, varobj.c: Update. * z8k-tdep.c, cli/cli-cmds.c: Update. Index: mi/ChangeLog 2002-11-29 Andrew Cagney <ac131313@redhat.com> * mi/mi-cmd-stack.c, mi/mi-main.c: Update to use deprecated_selected_frame. Index: tui/ChangeLog 2002-11-29 Andrew Cagney <ac131313@redhat.com> * tui/tui-hooks.c: Update to use deprecated_selected_frame. * tui/tui.c, tui/tuiDisassem.c, tui/tuiRegs.c: Ditto. * tui/tuiSource.c, tui/tuiSourceWin.c, tui/tuiWin.c: Ditto.
Diffstat (limited to 'gdb/frame.h')
-rw-r--r--gdb/frame.h31
1 files changed, 20 insertions, 11 deletions
diff --git a/gdb/frame.h b/gdb/frame.h
index 98045c1..419511c 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -73,15 +73,24 @@ extern struct frame_info *get_current_frame (void);
flush_cached_frames() and reinit_frame_cache() is that the latter
explicitly sets the selected frame back to the current frame there
isn't any real difference (except that one delays the selection of
- a new frame). There should instead be a get_selected_frame()
- method that reinit's the frame cache on-demand. As for
- invalidating the cache, there should be two methods one that
- reverts the thread's selected frame back to current frame (for when
- the inferior resumes) and one that does not (for when the user
- modifies the target invalidating the frame cache). */
+ a new frame). Code can instead simply rely on get_selected_frame()
+ to reinit's the selected frame as needed. As for invalidating the
+ cache, there should be two methods one that reverts the thread's
+ selected frame back to current frame (for when the inferior
+ resumes) and one that does not (for when the user modifies the
+ target invalidating the frame cache). */
extern void flush_cached_frames (void);
extern void reinit_frame_cache (void);
+/* On demand, create the selected frame and then return it. If the
+ selected frame can not be created, this function throws an error. */
+/* FIXME: cagney/2002-11-28: At present, when there is no selected
+ frame, this function always returns the current (inner most) frame.
+ It should instead, when a thread has previously had its frame
+ selected (but not resumed) and the frame cache invalidated, find
+ and then return that thread's previously selected frame. */
+extern struct frame_info *get_selected_frame (void);
+
/* Select a specific frame. NULL, apparently implies re-select the
inner most frame. */
extern void select_frame (struct frame_info *);
@@ -564,21 +573,21 @@ extern void return_command (char *, int);
The relevant code needs to be audited to determine if it is
possible (or pratical) to instead pass the applicable frame in as a
parameter. For instance, DEPRECATED_DO_REGISTERS_INFO() relied on
- the selected_frame global, but its replacement,
+ the deprecated_selected_frame global, while its replacement,
PRINT_REGISTERS_INFO(), is parameterized with the selected frame.
The only real exceptions occure at the edge (in the CLI code) where
user commands need to pick up the selected frame before proceeding.
This is important. GDB is trying to stamp out the hack:
- saved_frame = selected_frame;
- selected_frame = ...;
+ saved_frame = deprecated_selected_frame;
+ deprecated_selected_frame = ...;
hack_using_global_selected_frame ();
- selected_frame = saved_frame;
+ deprecated_selected_frame = saved_frame;
Take care! */
-extern struct frame_info *selected_frame;
+extern struct frame_info *deprecated_selected_frame;
/* NOTE: cagney/2002-11-28: