From 0efcf9dce5173dc3206260261dcf01487e6e8b5d Mon Sep 17 00:00:00 2001 From: Randolph Chung Date: Mon, 13 Dec 2004 03:38:23 +0000 Subject: [PATCH] 2004-12-13 Randolph Chung * tramp-frame.c (tramp_frame_sniffer): Allow frames with names or sections to be trampolines too. --- gdb/ChangeLog | 5 +++++ gdb/tramp-frame.c | 15 ++++----------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 39b3d9d4025..f0e245ecad1 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2004-12-13 Randolph Chung + + * tramp-frame.c (tramp_frame_sniffer): Allow frames with names or + sections to be trampolines too. + 2004-12-13 Ben Elliston * f-exp.y (typename): Remove unused nonterminal. diff --git a/gdb/tramp-frame.c b/gdb/tramp-frame.c index 19ce3bd9151..75fb22fc910 100644 --- a/gdb/tramp-frame.c +++ b/gdb/tramp-frame.c @@ -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; -- 2.30.2