diff options
author | Mark Kettenis <kettenis@gnu.org> | 2004-04-09 23:15:53 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2004-04-09 23:15:53 +0000 |
commit | d9f8c85b8e4983b7a62abf5affa8030bcfee692e (patch) | |
tree | d16780152b5fbcbb7fae4f89040cebb1d81bffa8 | |
parent | 75f501b5c965bbd68d7d64a29ab8db05a0c12f0b (diff) | |
download | gdb-d9f8c85b8e4983b7a62abf5affa8030bcfee692e.zip gdb-d9f8c85b8e4983b7a62abf5affa8030bcfee692e.tar.gz gdb-d9f8c85b8e4983b7a62abf5affa8030bcfee692e.tar.bz2 |
* i386-sol2-tdep.c: Include "gdb_string.h".
(i386_sol2_sigtramp_p): Recognize signal trampoline based on its
name.
* Makefile.in (i386-sol2-tdep.o): Update dependencies.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/Makefile.in | 2 | ||||
-rw-r--r-- | gdb/i386-sol2-tdep.c | 12 |
3 files changed, 17 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 023b19b..764a05c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,12 @@ 2004-04-10 Mark Kettenis <kettenis@gnu.org> + * i386-sol2-tdep.c: Include "gdb_string.h". + (i386_sol2_sigtramp_p): Recognize signal trampoline based on its + name. + * Makefile.in (i386-sol2-tdep.o): Update dependencies. + +2004-04-10 Mark Kettenis <kettenis@gnu.org> + * i386-sol2-tdep.c: Include "solib-svr4.h". (i386_sol2_init_abi): Set solib_svr4_fetch_link_map_offsets. * Makefile.in (i386-sol2-tdep.o): Update dependencies. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 30a357e..fd18260 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -1877,7 +1877,7 @@ i386obsd-tdep.o: i386obsd-tdep.c $(defs_h) $(arch_utils_h) $(frame_h) \ $(osabi_h) $(target_h) $(gdb_assert_h) $(gdb_string_h) \ $(i386_tdep_h) $(i387_tdep_h) $(solib_svr4_h) i386-sol2-tdep.o: i386-sol2-tdep.c $(defs_h) $(value_h) $(osabi_h) \ - $(i386_tdep_h) $(solib_svr4_h) + $(gdb_string_h) $(i386_tdep_h) $(solib_svr4_h) i386-stub.o: i386-stub.c i386-tdep.o: i386-tdep.c $(defs_h) $(arch_utils_h) $(command_h) \ $(dummy_frame_h) $(dwarf2_frame_h) $(doublest_h) $(floatformat_h) \ diff --git a/gdb/i386-sol2-tdep.c b/gdb/i386-sol2-tdep.c index 698066f..46a7a7c 100644 --- a/gdb/i386-sol2-tdep.c +++ b/gdb/i386-sol2-tdep.c @@ -23,6 +23,8 @@ #include "value.h" #include "osabi.h" +#include "gdb_string.h" + #include "i386-tdep.h" #include "solib-svr4.h" @@ -47,14 +49,18 @@ static int i386_sol2_gregset_reg_offset[] = 0 * 4 /* %gs */ }; +/* Return whether the frame preceding NEXT_FRAME corresponds to a + Solaris sigtramp routine. */ + static int i386_sol2_sigtramp_p (struct frame_info *next_frame) { CORE_ADDR pc = frame_pc_unwind (next_frame); + char *name; - /* Signal handler frames under Solaris 2 are recognized by a return - address of 0xffffffff. */ - return (pc == 0xffffffff); + find_pc_partial_function (pc, &name, NULL, NULL); + return (name && (strcmp ("sigacthandler", name) == 0 + || strcmp (name, "ucbsigvechandler") == 0)); } /* Solaris doesn't have a `struct sigcontext', but it does have a |