Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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


  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