* alpha-tdep.c (alpha_register_name): New function.
[deliverable/binutils-gdb.git] / gdb / frame.h
index 561ae278ab1cdfbc13d378b5eb0283ea7f3081a4..f4c51e07b42ed4ed84880cd7c9e1c2aa6fb1cde2 100644 (file)
@@ -77,11 +77,11 @@ struct frame_info
        the frame, or zero if it was not saved on entry to this frame.
        This includes special registers such as pc and fp saved in
        special ways in the stack frame.  The SP_REGNUM is even more
-       special, the address here is the sp for the next frame, not the
-       address where the sp was saved.  */
+       special, the address here is the sp for the previous frame, not
+       the address where the sp was saved.  */
     /* Allocated by frame_saved_regs_zalloc () which is called /
        initialized by FRAME_INIT_SAVED_REGS(). */
-    CORE_ADDR *saved_regs;     /*NUM_REGS */
+    CORE_ADDR *saved_regs;     /*NUM_REGS + NUM_PSEUDO_REGS*/
 
 #ifdef EXTRA_FRAME_INFO
     /* XXXX - deprecated */
@@ -96,8 +96,14 @@ struct frame_info
        initialized by INIT_EXTRA_FRAME_INFO */
     struct frame_extra_info *extra_info;
 
-    /* Pointers to the next and previous frame_info's in the frame cache.  */
-    struct frame_info *next, *prev;
+    /* If dwarf2 unwind frame informations is used, this structure holds all
+       related unwind data.  */
+    struct unwind_contect *context;
+
+    /* Pointers to the next (down, inner) and previous (up, outer)
+       frame_info's in the frame cache.  */
+    struct frame_info *next; /* down, inner */
+    struct frame_info *prev; /* up, outer */
   };
 
 /* Values for the source flag to be used in print_frame_info_base(). */
@@ -114,11 +120,17 @@ enum print_what
     LOC_AND_ADDRESS 
   };
 
-/* Allocate additional space for appendices to a struct frame_info. */
+/* Allocate additional space for appendices to a struct frame_info.
+   NOTE: Much of GDB's code works on the assumption that the allocated
+   saved_regs[] array is the size specified below.  If you try to make
+   that array smaller, GDB will happily walk off its end. */
 
-#ifndef SIZEOF_FRAME_SAVED_REGS
-#define SIZEOF_FRAME_SAVED_REGS (sizeof (CORE_ADDR) * (NUM_REGS))
+#ifdef SIZEOF_FRAME_SAVED_REGS
+#error "SIZEOF_FRAME_SAVED_REGS can not be re-defined"
 #endif
+#define SIZEOF_FRAME_SAVED_REGS \
+        (sizeof (CORE_ADDR) * (NUM_REGS+NUM_PSEUDO_REGS))
+
 extern void *frame_obstack_alloc (unsigned long size);
 extern void frame_saved_regs_zalloc (struct frame_info *);
 
This page took 0.024266 seconds and 4 git commands to generate.