From 805e2818d6d8eab9ceaf1754eda3ed59404ae39d Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Fri, 29 Nov 2002 15:39:51 +0000 Subject: [PATCH] 2002-11-29 Andrew Cagney * frame.h (get_selected_block): Add comments. --- gdb/ChangeLog | 4 ++++ gdb/frame.h | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 19f9ba3..472568b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2002-11-29 Andrew Cagney + + * frame.h (get_selected_block): Add comments. + 2002-11-28 Andrew Cagney * frame.c (pc_notcurrent): New function. diff --git a/gdb/frame.h b/gdb/frame.h index 202f9c8..98045c1 100644 --- a/gdb/frame.h +++ b/gdb/frame.h @@ -442,6 +442,32 @@ extern void get_frame_saved_regs (struct frame_info *, extern struct block *get_frame_block (struct frame_info *, CORE_ADDR *addr_in_block); +/* Return the `struct block' that belongs to the selected thread's + selected frame. If the inferior has no state, return NULL. + + NOTE: cagney/2002-11-29: + + No state? Does the inferior have any execution state (a core file + does, an executable does not). At present the code tests + `target_has_stack' but I'm left wondering if it should test + `target_has_registers' or, even, a merged target_has_state. + + Should it look at the most recently specified SAL? If the target + has no state, should this function try to extract a block from the + most recently selected SAL? That way `list foo' would give it some + sort of reference point. Then again, perhaphs that would confuse + things. + + Calls to this function can be broken down into two categories: Code + that uses the selected block as an additional, but optional, data + point; Code that uses the selected block as a prop, when it should + have the relevant frame/block/pc explicitly passed in. + + The latter can be eliminated by correctly parameterizing the code, + the former though is more interesting. Per the "address" command, + it occures in the CLI code and makes it possible for commands to + work, even when the inferior has no state. */ + extern struct block *get_selected_block (CORE_ADDR *addr_in_block); extern struct symbol *get_frame_function (struct frame_info *); -- 2.7.4