diff options
author | Randolph Chung <tausq@debian.org> | 2004-12-13 03:38:23 +0000 |
---|---|---|
committer | Randolph Chung <tausq@debian.org> | 2004-12-13 03:38:23 +0000 |
commit | 22db0aa315a7a864dbcb92f729933b4275ae01a9 (patch) | |
tree | ebe5c7d940d16bdfb5c09526c8f840bd369f76da /gdb/tramp-frame.c | |
parent | 22c893539d2bc8862845956e836f57bbcbc6b53e (diff) | |
download | gdb-22db0aa315a7a864dbcb92f729933b4275ae01a9.tar.gz |
2004-12-13 Randolph Chung <tausq@debian.org>
* tramp-frame.c (tramp_frame_sniffer): Allow frames with names or
sections to be trampolines too.
Diffstat (limited to 'gdb/tramp-frame.c')
-rw-r--r-- | gdb/tramp-frame.c | 15 |
1 files changed, 4 insertions, 11 deletions
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; |