+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".
$(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) \
#include "value.h"
#include "osabi.h"
+#include "gdb_string.h"
+
#include "i386-tdep.h"
#include "solib-svr4.h"
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