From: Luis Gustavo <luis_gustavo@mentor.com>
To: Anton Blanchard <anton@samba.org>
Cc: Joel Brobecker <brobecker@adacore.com>,
gdb-patches@sourceware.org, emachado@linux.vnet.ibm.com
Subject: Re: [PATCH 1/3] Fix ppc64 single step over atomic sequence testcase
Date: Tue, 12 Jun 2012 13:06:00 -0000 [thread overview]
Message-ID: <4FD73EB2.3070705@mentor.com> (raw)
In-Reply-To: <20120612224515.15bc044d@kryten>
Hi Anton,
On 06/12/2012 09:45 AM, Anton Blanchard wrote:
>> It would be useful for you to say what exactly is broken, and on
>> which platform. At least it seems to have been working for some
>> people (at IBM).
>
> Sorry the explanation was a bit terse. The testcase assumes it only
> requires two "next"s to get through the test function:
>
> set bp1 [gdb_get_line_number "lwarx"]
> gdb_breakpoint "$bp1" "Breakpoint $decimal at $hex" \
> "Set the breakpoint at the start of the sequence"
>
> gdb_test continue "Continuing.*Breakpoint $decimal.*" \
> "Continue until breakpoint"
>
> gdb_test next ".*__asm __volatile.*" \
> "Step through the lwarx/stwcx sequence"
>
> gdb_test next ".*return 0.*" \
> "Step through the ldarx/stdcx sequence"
>
> If I run this testcase manually on Fedora 16 (gcc 4.6.2), it
> actually takes 7 steps to get through it:
>
> Breakpoint 2, main () at ./gdb.arch/ppc64-atomic-inst.c:27
> 27 __asm __volatile ("1: lwarx %0,0,%2\n" \
> (gdb) next
> 32 : "b" (word_addr), "m" (*word_addr) \
> (gdb) next
> 27 __asm __volatile ("1: lwarx %0,0,%2\n" \
> (gdb) next
> 39 : "=&b" (dword), "=m" (*dword_addr) \
> (gdb) next
> 35 __asm __volatile ("1: ldarx %0,0,%2\n" \
> (gdb) next
> 40 : "b" (dword_addr), "m" (*dword_addr) \
> (gdb) next
> 35 __asm __volatile ("1: ldarx %0,0,%2\n" \
> (gdb) next
> 43 return 0;
> (gdb)
>
> I'm not sure what is expected here, is "next" supposed to step all the
> way through inline assembly? Perhaps it is, but it seems fragile to
> depend on this high level behaviour.
I authored that testcase a while ago. For the most common case we didn't
have multiple branch instructions inside such a sequence IIRC, but if we
have that now, the testcase should definitely be updated.
GDB is supposed to skip eacho sequence (__asm__ block) in response to a
"next", but it may have had its behavior changed from when i originally
wrote this. It seems to take multiple next's to get to a different
__asm__ block now, so it seems to be broken.
It may be a difference in GCC's debuginfo output or GDB just got smarter.
Regards,
Luis
next prev parent reply other threads:[~2012-06-12 13:06 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-06 3:56 Anton Blanchard
2012-06-06 3:57 ` [PATCH 2/3] Support up to 3 conditional branches in an atomic sequence Anton Blanchard
2012-06-13 16:02 ` Joel Brobecker
2012-07-16 6:34 ` Anton Blanchard
2012-09-28 10:44 ` Joel Brobecker
2012-09-28 11:44 ` Pedro Alves
2012-06-06 3:58 ` [PATCH 3/3] Add multiple branches to single step through atomic sequence testcase Anton Blanchard
2012-06-13 16:06 ` Joel Brobecker
2012-07-16 6:43 ` Anton Blanchard
2012-09-28 10:44 ` Joel Brobecker
2012-06-11 19:33 ` [PATCH 1/3] Fix ppc64 single step over " Joel Brobecker
2012-06-12 12:45 ` Anton Blanchard
2012-06-12 13:06 ` Luis Gustavo [this message]
2012-06-12 13:17 ` Joel Brobecker
2012-06-12 13:28 ` Luis Gustavo
2012-06-12 16:53 ` Edjunior Barbosa Machado
2012-06-13 0:46 ` Anton Blanchard
2012-06-13 14:00 ` Edjunior Barbosa Machado
2012-06-13 15:37 ` Joel Brobecker
2012-07-16 6:23 ` Anton Blanchard
2012-09-26 23:21 ` Edjunior Barbosa Machado
2012-09-27 19:03 ` Luis Gustavo
2012-09-28 10:16 ` Joel Brobecker
2013-07-29 7:39 Anton Blanchard
2013-07-30 17:15 ` Edjunior Barbosa Machado
2013-07-31 12:31 ` Anton Blanchard
2013-08-01 15:54 ` Ulrich Weigand
2013-08-02 13:45 ` Anton Blanchard
2014-03-31 2:59 Anton Blanchard
2014-03-31 15:38 ` Ulrich Weigand
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=4FD73EB2.3070705@mentor.com \
--to=luis_gustavo@mentor.com \
--cc=anton@samba.org \
--cc=brobecker@adacore.com \
--cc=emachado@linux.vnet.ibm.com \
--cc=gdb-patches@sourceware.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