* 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.
This commit is contained in:
parent
75f501b5c9
commit
d9f8c85b8e
3 changed files with 17 additions and 4 deletions
|
@ -1,3 +1,10 @@
|
|||
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".
|
||||
|
|
|
@ -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) \
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue