From: Luis Machado <lgustavo@codesourcery.com>
To: Steve Ellcey <sellcey@caviumnetworks.com>, gdb <gdb@sourceware.org>
Subject: Re: Question about backtraces through signal handlers for aarch64 ILP32 support
Date: Tue, 28 Feb 2017 00:36:00 -0000 [thread overview]
Message-ID: <1fb132ae-4230-2ae1-ad57-6ca51b1c8d97@codesourcery.com> (raw)
In-Reply-To: <1488241574.2866.227.camel@caviumnetworks.com>
On 02/27/2017 06:26 PM, Steve Ellcey wrote:
> I am working on supporting gdb on aarch64 in ILP32 mode but am not that
> familiar with gdb and was wondering if anyone could give me some ideas
> on where to look for a problem I am seeing.
>
> I run the test case 'gdb.base/sigstep' in gdb by hand and do the initial
> commands that that testsuite does:
>
> break main
> run
> break handler
> continue
> bt
>
> In LP64 mode, I get this backtrace:
>
> #0 handler (sig=26)
> at /home/ubuntu/sellcey/gdb-ilp32/obj-64/binutils/gdb/testsuite/../../../..
> /src/binutils-gdb/gdb/testsuite/gdb.base/sigstep.c:35
> #1 <signal handler called>
> #2 0x00000000004008cc in main ()
> at /home/ubuntu/sellcey/gdb-ilp32/obj-64/binutils/gdb/testsuite/../../../..
> /src/binutils-gdb/gdb/testsuite/gdb.base/sigstep.c:87
>
> But in ILP32 mode, I get this backtrace:
>
> #0 handler (sig=26)
> at /home/ubuntu/sellcey/gdb-ilp32/obj-32/binutils/gdb/testsuite/../../../..
> /src/binutils-gdb/gdb/testsuite/gdb.base/sigstep.c:35
> #1 <signal handler called>
> #2 0x00000000 in ?? ()
> #3 0x00400740 in main ()
> at /home/ubuntu/sellcey/gdb-ilp32/obj-32/binutils/gdb/testsuite/../../../..
> /src/binutils-gdb/gdb/testsuite/gdb.base/sigstep.c:87
>
>
> I think the backtrace for ILP32 does not match what is expected because
> it has the extra entry in it (#2 with no name or location). I am not sure
> if that is a real frame that the test needs to expect or just an error in
> how gdb is reading the frame information.
Not a real entry AFAICS.
>
> Normal backtraces seem to be working fine, the majority of ILP32 failures
> I get in gdb.base (that don't also happen in LP64 mode) are tests with 'sig'
> in their name like sigstep.
>
> Any ideas on where to look or what to look for?
That extra frame indicates gdb is getting confused when extracting
register state from the signal frame and creates a spurious frame at
0x0. Maybe gdb is finding a frame pointer that points to 0x0 and should
instead point to 0x00400740 (main)? Tracking that down may help figure
it out.
Otherwise the backtrace looks sane.
next prev parent reply other threads:[~2017-02-28 0:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-28 0:26 Steve Ellcey
2017-02-28 0:36 ` Luis Machado [this message]
2017-02-28 10:21 ` Yao Qi
2017-02-28 10:21 ` Andreas Schwab
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=1fb132ae-4230-2ae1-ad57-6ca51b1c8d97@codesourcery.com \
--to=lgustavo@codesourcery.com \
--cc=gdb@sourceware.org \
--cc=sellcey@caviumnetworks.com \
/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