OSDN Git Service

2004-12-13 Randolph Chung <tausq@debian.org>
authortausq <tausq>
Mon, 13 Dec 2004 03:38:22 +0000 (03:38 +0000)
committertausq <tausq>
Mon, 13 Dec 2004 03:38:22 +0000 (03:38 +0000)
* tramp-frame.c (tramp_frame_sniffer): Allow frames with names or
sections to be trampolines too.

gdb/ChangeLog
gdb/tramp-frame.c

index 39b3d9d..f0e245e 100644 (file)
@@ -1,3 +1,8 @@
+2004-12-13  Randolph Chung  <tausq@debian.org>
+
+       * tramp-frame.c (tramp_frame_sniffer): Allow frames with names or 
+       sections to be trampolines too.
+
 2004-12-13  Ben Elliston  <bje@au.ibm.com>
 
        * f-exp.y (typename): Remove unused nonterminal.
index 19ce3bd..75fb22f 100644 (file)
@@ -122,19 +122,12 @@ tramp_frame_sniffer (const struct frame_unwind *self,
   const struct tramp_frame *tramp = self->unwind_data->tramp_frame;
   CORE_ADDR pc = frame_pc_unwind (next_frame);
   CORE_ADDR func;
-  char *name;
   struct tramp_frame_cache *tramp_cache;
 
-  /* If the function has a valid symbol name, it isn't a
-     trampoline.  */
-  find_pc_partial_function (pc, &name, NULL, NULL);
-  if (name != NULL)
-    return 0;
-  /* If the function lives in a valid section (even without a starting
-     point) it isn't a trampoline.  */
-  if (find_pc_section (pc) != NULL)
-    return 0;
-  /* Finally, check that the trampoline matches at PC.  */
+  /* tausq/2004-12-12: We used to assume if pc has a name or is in a valid 
+     section, then this is not a trampoline.  However, this assumption is
+     false on HPUX which has a signal trampoline that has a name; it can
+     also be false when using an alternative signal stack.  */
   func = tramp_frame_start (tramp, next_frame, pc);
   if (func == 0)
     return 0;