* config/tc-xtensa.c (xg_assembly_relax): Increment steps_taken for
[deliverable/binutils-gdb.git] / gdb / frame.h
index 347b27a99eed46c3213315eb108568a699005e92..a73a4f1dec3550f5bfd1168a4e3748ea0164e0af 100644 (file)
@@ -1,6 +1,6 @@
 /* Definitions for dealing with stack frames, for GDB, the GNU debugger.
 
-   Copyright 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996,
+   Copyright (C) 1986, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1996,
    1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 
    This file is part of GDB.
@@ -17,8 +17,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 #if !defined (FRAME_H)
 #define FRAME_H 1
@@ -219,13 +219,15 @@ 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.  */
+   selected frame can not be created, this function prints then throws
+   an error.  When MESSAGE is non-NULL, use it for the error message,
+   otherwize use a generic error message.  */
 /* 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);
+extern struct frame_info *get_selected_frame (const char *message);
 
 /* Select a specific frame.  NULL, apparently implies re-select the
    inner most frame.  */
@@ -393,7 +395,7 @@ extern enum frame_type get_frame_type (struct frame_info *);
 extern void frame_register_unwind (struct frame_info *frame, int regnum,
                                   int *optimizedp, enum lval_type *lvalp,
                                   CORE_ADDR *addrp, int *realnump,
-                                  void *valuep);
+                                  gdb_byte *valuep);
 
 /* Fetch a register from this, or unwind a register from the next
    frame.  Note that the get_frame methods are wrappers to
@@ -401,9 +403,9 @@ extern void frame_register_unwind (struct frame_info *frame, int regnum,
    fetch fails.  */
 
 extern void frame_unwind_register (struct frame_info *frame,
-                                  int regnum, void *buf);
+                                  int regnum, gdb_byte *buf);
 extern void get_frame_register (struct frame_info *frame,
-                               int regnum, void *buf);
+                               int regnum, gdb_byte *buf);
 
 extern LONGEST frame_unwind_register_signed (struct frame_info *frame,
                                             int regnum);
@@ -420,20 +422,20 @@ extern void frame_unwind_unsigned_register (struct frame_info *frame,
                                            int regnum, ULONGEST *val);
 
 /* Get the value of the register that belongs to this FRAME.  This
-   function is a wrapper to the call sequence ``frame_unwind_register
+   function is a wrapper to the call sequence ``frame_register_unwind
    (get_next_frame (FRAME))''.  As per frame_register_unwind(), if
    VALUEP is NULL, the registers value is not fetched/computed.  */
 
 extern void frame_register (struct frame_info *frame, int regnum,
                            int *optimizedp, enum lval_type *lvalp,
                            CORE_ADDR *addrp, int *realnump,
-                           void *valuep);
+                           gdb_byte *valuep);
 
 /* The reverse.  Store a register value relative to the specified
    frame.  Note: this call makes the frame's state undefined.  The
    register and frame caches must be flushed.  */
 extern void put_frame_register (struct frame_info *frame, int regnum,
-                               const void *buf);
+                               const gdb_byte *buf);
 
 /* Map between a frame register number and its name.  A frame register
    space is a superset of the cooked register space --- it also
@@ -469,7 +471,7 @@ extern void frame_pop (struct frame_info *frame);
    adaptor frames this should be ok.  */
 
 extern void get_frame_memory (struct frame_info *this_frame, CORE_ADDR addr,
-                             void *buf, int len);
+                             gdb_byte *buf, int len);
 extern LONGEST get_frame_memory_signed (struct frame_info *this_frame,
                                        CORE_ADDR memaddr, int len);
 extern ULONGEST get_frame_memory_unsigned (struct frame_info *this_frame,
@@ -478,7 +480,7 @@ extern ULONGEST get_frame_memory_unsigned (struct frame_info *this_frame,
 /* Same as above, but return non-zero when the entire memory read
    succeeds, zero otherwize.  */
 extern int safe_frame_unwind_memory (struct frame_info *this_frame,
-                                    CORE_ADDR addr, void *buf, int len);
+                                    CORE_ADDR addr, gdb_byte *buf, int len);
 
 /* Return this frame's architecture.  */
 
@@ -518,7 +520,8 @@ extern void *frame_obstack_zalloc (unsigned long size);
 #define FRAME_OBSTACK_ZALLOC(TYPE) ((TYPE *) frame_obstack_zalloc (sizeof (TYPE)))
 #define FRAME_OBSTACK_CALLOC(NUMBER,TYPE) ((TYPE *) frame_obstack_zalloc ((NUMBER) * sizeof (TYPE)))
 
-extern void generic_save_dummy_frame_tos (CORE_ADDR sp);
+/* Create a regcache, and copy the frame's registers into it.  */
+struct regcache *frame_save_as_regcache (struct frame_info *this_frame);
 
 extern struct block *get_frame_block (struct frame_info *,
                                       CORE_ADDR *addr_in_block);
@@ -555,8 +558,6 @@ extern struct symbol *get_frame_function (struct frame_info *);
 
 extern CORE_ADDR get_pc_function_start (CORE_ADDR);
 
-extern int legacy_frameless_look_for_prologue (struct frame_info *);
-
 extern struct frame_info *find_relative_frame (struct frame_info *, int *);
 
 extern void show_and_print_stack_frame (struct frame_info *fi, int print_level,
@@ -572,12 +573,8 @@ extern void print_frame_info (struct frame_info *, int print_level,
 
 extern struct frame_info *block_innermost_frame (struct block *);
 
-extern void generic_push_dummy_frame (void);
-
 extern int deprecated_pc_in_call_dummy (CORE_ADDR pc);
 
-extern void generic_save_call_dummy_addr (CORE_ADDR lo, CORE_ADDR hi);
-
 /* FIXME: cagney/2003-02-02: Should be deprecated or replaced with a
    function called get_frame_register_p().  This slightly weird (and
    older) variant of get_frame_register() returns zero (indicating the
@@ -589,7 +586,7 @@ extern void generic_save_call_dummy_addr (CORE_ADDR lo, CORE_ADDR hi);
    isn't available (it could have been fetched from memory).  */
 
 extern int frame_register_read (struct frame_info *frame, int regnum,
-                               void *buf);
+                               gdb_byte *buf);
 
 /* From stack.c.  */
 extern void args_info (char *, int);
@@ -655,7 +652,7 @@ extern void deprecated_update_frame_pc_hack (struct frame_info *frame,
 
 /* FIXME: cagney/2002-12-18: Has the frame's base changed?  Or to be
    more exact, was that initial guess at the frame's base as returned
-   by deprecated_read_fp() wrong?  If it was, fix it.  This shouldn't
+   by the deleted read_fp() wrong?  If it was, fix it.  This shouldn't
    be necessary since the code should be getting the frame's base
    correct from the outset.
 
This page took 0.045964 seconds and 4 git commands to generate.