[patch] multi-arch INIT_FRAME_PC*; Was: New gdb 31 & 64 bit patches for S/390

Andrew Cagney
2001-06-15T16:09:00Z

Hello,

I've checked in the attatched, it multi-arches INIT_FRAME_PC_FIRST. (I
also got a little carried away and multi-arched INIT_FRAME_PC as well :-)

Andrew
From msnyder@cygnus.com Fri Jun 15 16:22:00 2001
From: Michael Snyder <msnyder@cygnus.com>
To: "Peter.Schauer" <Peter.Schauer@Regent.E-Technik.TU-Muenchen.DE>, gdb-patches@sources.redhat.com
Subject: [RFC] if (INNER_THAN (read_sp(), step_sp - 16))
Date: Fri, 15 Jun 2001 16:22:00 -0000
Message-id: <3B2A97C7.52A839FD@cygnus.com>
X-SW-Source: 2001-06/msg00307.html
Content-length: 1134

Hellooooooo, Peter Schauer!

Back in April of 1998 a patch from you was checked in (you may have
submitted it some time earlier) for x86 Solaris. Among other things,
it contained a test in infrun.c (wait_for_inferior) that looked like:

[stuff...]
(CURRENTLY_STEPPING ()
&& prev_pc != stop_pc - DECR_PC_AFTER_BREAK
&& !(step_range_end
&& read_sp () INNER_THAN (step_sp - 16)));

A comment explains that the INNER_THAN expression is meant to detect
hitting a breakpoint in a signal handler without an intervening stop
in sigtramp.

The lines have metamorphosed since then, but the expression with
(step_sp - 16) is still in there, and I would really like to get
rid of it. Especially since I have now found that it can cause
serious bugs in debugging native Linux x86.

But I have no idea how to detect the situation that you are
trying to test for. So I'd like to toss it back to you.
Can you find a better way to test for this? Maybe with
(ugh) another state variable?

And if not, can you put those two lines into an ifdef,
so they won't affect targets for which they're not intended?

Thanks a lot,
Michael