From: Andrew Cagney <cagney@gnu.org>
To: Joel Brobecker <brobecker@gnat.com>
Cc: kettenis@gnu.org, Elena Zannoni <ezannoni@redhat.com>,
gdb-patches@sources.redhat.com
Subject: Re: [RFA] use frame IDs to detect function calls while stepping
Date: Fri, 19 Mar 2004 00:09:00 -0000 [thread overview]
Message-ID: <4044ACBF.1020302@gnu.org> (raw)
In-Reply-To: <20040302061642.GW1051@gnat.com>
>>After two iterations (one for the call insn, and one for the delay
>>> slot), GDB lands at the begining of function "exit" at 0x00020950,
>>> which is:
>>>
>>> 0x00020950 <exit+0>: sethi %hi(0xf000), %g1
>>> 0x00020954 <exit+4>: b,a 0x20914 <_PROCEDURE_LINKAGE_TABLE_>
>>> 0x00020958 <exit+8>: nop
>>>
>>> So at this point, the registers window has not been rotated.
>>> I don't know if this is the cause for this problem, but at this
>>> point GDB is unable to unwind the call stack:
>>>
>>> (gdb) bt
>>> #0 0x00020950 in _PROCEDURE_LINKAGE_TABLE_ ()
>>>
>>> (And gets the wrong procedure name as well, but that's a separate
>>> issue - although "x /i" does report what I believe is the correct
>>> name, strange!).
>>>
>>> I am looking into the sparc unwinder code right now, to try to
>>> understand a bit better the source of the problem.
>
>
> I think I found the source of the glitch. I may have the solution
> to fix it, but my little finger is telling that it might be a bit
> too extreme... Maybe MarkK has some comments about this?
How about this as a compromize:
- in 6.1
your original patch (but with a comment saying that the
+ if (IN_SOLIB_CALL_TRAMPOLINE (stop_pc, ecs->stop_func_name))
is a hack and shouldn't be included in the mainline)
- in mainline:
Assuming Mark's ok with the sparc changes, your patch without that part?
This way 6.1 is robust regardless of which SPARC architecture code is in
place.
Andrew
WARNING: multiple messages have this Message-ID
From: Andrew Cagney <cagney@gnu.org>
To: Joel Brobecker <brobecker@gnat.com>
Cc: kettenis@gnu.org, Elena Zannoni <ezannoni@redhat.com>,
gdb-patches@sources.redhat.com
Subject: Re: [RFA] use frame IDs to detect function calls while stepping
Date: Tue, 02 Mar 2004 15:48:00 -0000 [thread overview]
Message-ID: <4044ACBF.1020302@gnu.org> (raw)
Message-ID: <20040302154800.4SQ168_gTJ1l1PhREcmbHxwItVgC21hnaCJL4t2CGTk@z> (raw)
In-Reply-To: <20040302061642.GW1051@gnat.com>
>>After two iterations (one for the call insn, and one for the delay
>>> slot), GDB lands at the begining of function "exit" at 0x00020950,
>>> which is:
>>>
>>> 0x00020950 <exit+0>: sethi %hi(0xf000), %g1
>>> 0x00020954 <exit+4>: b,a 0x20914 <_PROCEDURE_LINKAGE_TABLE_>
>>> 0x00020958 <exit+8>: nop
>>>
>>> So at this point, the registers window has not been rotated.
>>> I don't know if this is the cause for this problem, but at this
>>> point GDB is unable to unwind the call stack:
>>>
>>> (gdb) bt
>>> #0 0x00020950 in _PROCEDURE_LINKAGE_TABLE_ ()
>>>
>>> (And gets the wrong procedure name as well, but that's a separate
>>> issue - although "x /i" does report what I believe is the correct
>>> name, strange!).
>>>
>>> I am looking into the sparc unwinder code right now, to try to
>>> understand a bit better the source of the problem.
>
>
> I think I found the source of the glitch. I may have the solution
> to fix it, but my little finger is telling that it might be a bit
> too extreme... Maybe MarkK has some comments about this?
How about this as a compromize:
- in 6.1
your original patch (but with a comment saying that the
+ if (IN_SOLIB_CALL_TRAMPOLINE (stop_pc, ecs->stop_func_name))
is a hack and shouldn't be included in the mainline)
- in mainline:
Assuming Mark's ok with the sparc changes, your patch without that part?
This way 6.1 is robust regardless of which SPARC architecture code is in
place.
Andrew
next prev parent reply other threads:[~2004-03-02 15:48 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-05 4:41 Joel Brobecker
2004-02-05 17:13 ` Joel Brobecker
2004-02-05 18:54 ` Elena Zannoni
2004-02-07 4:01 ` Joel Brobecker
2004-02-27 15:23 ` Andrew Cagney
2004-03-19 0:09 ` Joel Brobecker
2004-03-01 19:48 ` Joel Brobecker
2004-03-19 0:09 ` Joel Brobecker
2004-03-01 23:52 ` Joel Brobecker
2004-03-02 6:16 ` Joel Brobecker
2004-03-03 21:12 ` Mark Kettenis
2004-03-19 0:09 ` Mark Kettenis
2004-03-19 0:09 ` Joel Brobecker
2004-03-19 0:09 ` Andrew Cagney [this message]
2004-03-02 15:48 ` Andrew Cagney
2004-03-19 0:09 ` Joel Brobecker
2004-03-02 22:07 ` Joel Brobecker
2004-03-06 0:15 ` Andrew Cagney
2004-03-19 0:09 ` Andrew Cagney
2004-02-05 19:01 ` Daniel Jacobowitz
2004-02-05 19:23 ` Elena Zannoni
2004-02-05 19:49 ` Daniel Jacobowitz
2004-02-09 19:21 ` Andrew Cagney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4044ACBF.1020302@gnu.org \
--to=cagney@gnu.org \
--cc=brobecker@gnat.com \
--cc=ezannoni@redhat.com \
--cc=gdb-patches@sources.redhat.com \
--cc=kettenis@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox