Fix stack unwinding through _sigtramp on Irix. These patches are from
Paul Flinders <ptf@delcam.co.uk>. * mipsread.c (fixup_sigtramp): Find _sigtramp on Irix even when the executable uses sigvec. * mips-tdep.c (read_next_frame_reg): Allow tm-file to override sigcontext offsets. * config/mips/tm-irix3.h: Add sigcontext offsets for Irix.
This commit is contained in:
parent
101b7f9ca5
commit
7cf92dd250
2 changed files with 19 additions and 8 deletions
|
@ -1,3 +1,13 @@
|
|||
Sat May 22 03:33:07 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
|
||||
|
||||
Fix stack unwinding through _sigtramp on Irix. These patches are from
|
||||
Paul Flinders <ptf@delcam.co.uk>.
|
||||
* mipsread.c (fixup_sigtramp): Find _sigtramp on Irix even when the
|
||||
executable uses sigvec.
|
||||
* mips-tdep.c (read_next_frame_reg): Allow tm-file to override
|
||||
sigcontext offsets.
|
||||
* config/mips/tm-irix3.h: Add sigcontext offsets for Irix.
|
||||
|
||||
Sat May 22 00:39:01 1993 Peter Schauer (pes@regent.e-technik.tu-muenchen.de)
|
||||
|
||||
* infrun.c (wait_for_inferior): Clear stop_signal if it should not
|
||||
|
|
|
@ -3153,19 +3153,20 @@ fixup_sigtramp ()
|
|||
|
||||
sigtramp_address = -1;
|
||||
|
||||
/* We know it is sold as sigvec */
|
||||
/* We have to handle the following cases here:
|
||||
a) The Mips library has a sigtramp label within sigvec.
|
||||
b) Irix has a _sigtramp which we want to use, but it also has sigvec. */
|
||||
s = lookup_symbol ("sigvec", 0, VAR_NAMESPACE, 0, NULL);
|
||||
|
||||
/* Most programs do not play with signals */
|
||||
if (s == 0)
|
||||
s = lookup_symbol ("_sigtramp", 0, VAR_NAMESPACE, 0, NULL);
|
||||
else
|
||||
if (s != 0)
|
||||
{
|
||||
b0 = SYMBOL_BLOCK_VALUE (s);
|
||||
|
||||
/* A label of sigvec, to be more precise */
|
||||
s = lookup_symbol ("sigtramp", b0, VAR_NAMESPACE, 0, NULL);
|
||||
}
|
||||
if (s == 0)
|
||||
{
|
||||
/* No sigvec or no sigtramp inside sigvec, try _sigtramp. */
|
||||
s = lookup_symbol ("_sigtramp", 0, VAR_NAMESPACE, 0, NULL);
|
||||
}
|
||||
|
||||
/* But maybe this program uses its own version of sigvec */
|
||||
if (s == 0)
|
||||
|
|
Loading…
Reference in a new issue