public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug gdb/13858] New: `set non-stop 1' triggers some fails in gdb.base/break-interp.exp
@ 2012-03-16  7:07 qiyao at gcc dot gnu.org
  2012-03-16  7:08 ` [Bug gdb/13858] " qiyao at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: qiyao at gcc dot gnu.org @ 2012-03-16  7:07 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=13858

             Bug #: 13858
           Summary: `set non-stop 1' triggers some fails in
                    gdb.base/break-interp.exp
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: gdb
        AssignedTo: unassigned@sourceware.org
        ReportedBy: qiyao@gcc.gnu.org
    Classification: Unclassified


If I don't turn on displaced stepping in default, I get no fail in
gdb.base/break-interp.exp.  When I turn on displaced stepping in default (by
add a line in $build_gdb/gdb/testsuite/site.exp), I get following new fails in
native gdb on x86 linux.


FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO:
symbol-less: reach-_dl_debug_state: reach
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO:
symbol-less: entry point reached
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES:
symbol-less: reach-_dl_debug_state: reach
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES:
symbol-less: entry point reached
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO:
symbol-less: reach-_dl_debug_state: reach
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO:
symbol-less: entry point reached
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES:
symbol-less: reach-_dl_debug_state: reach
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES:
symbol-less: entry point reached

(gdb) continue^M
Continuing.^M
0x4000e4c0 in _dl_debug_state () from
/home/yao/SourceCode/gnu/gdb/git.new/build-x86/gdb/testsuite/gdb.base/break-interp-LDprelinkNOdebugNO^M
Entry point address is not known.^M
(gdb) FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO:
BINprelinkNOdebugNOpieNO: symbol-less: reach-_dl_debug_state: reach

Further analysis is needed.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gdb/13858] `set non-stop 1' triggers some fails in gdb.base/break-interp.exp
  2012-03-16  7:07 [Bug gdb/13858] New: `set non-stop 1' triggers some fails in gdb.base/break-interp.exp qiyao at gcc dot gnu.org
@ 2012-03-16  7:08 ` qiyao at gcc dot gnu.org
  2012-03-16 10:18 ` palves at redhat dot com
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: qiyao at gcc dot gnu.org @ 2012-03-16  7:08 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=13858

Yao Qi <qiyao at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |x86-linux
               Host|                            |x86-linux

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gdb/13858] `set non-stop 1' triggers some fails in gdb.base/break-interp.exp
  2012-03-16  7:07 [Bug gdb/13858] New: `set non-stop 1' triggers some fails in gdb.base/break-interp.exp qiyao at gcc dot gnu.org
  2012-03-16  7:08 ` [Bug gdb/13858] " qiyao at gcc dot gnu.org
@ 2012-03-16 10:18 ` palves at redhat dot com
  2012-03-16 10:55 ` qiyao at gcc dot gnu.org
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: palves at redhat dot com @ 2012-03-16 10:18 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=13858

Pedro Alves <palves at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |palves at redhat dot com

--- Comment #1 from Pedro Alves <palves at redhat dot com> 2012-03-16 10:18:06 UTC ---
> If I don't turn on displaced stepping in default, I get no fail in
> gdb.base/break-interp.exp.  When I turn on displaced stepping in default (by
> add a line in $build_gdb/gdb/testsuite/site.exp), I get following new fails in
> native gdb on x86 linux.

So "set non-stop 1" isn't really necessary to trigger this, just "set
displaced-stepping on", right?  Or are you really running the tests in
non-stop+async mode?

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gdb/13858] `set non-stop 1' triggers some fails in gdb.base/break-interp.exp
  2012-03-16  7:07 [Bug gdb/13858] New: `set non-stop 1' triggers some fails in gdb.base/break-interp.exp qiyao at gcc dot gnu.org
  2012-03-16  7:08 ` [Bug gdb/13858] " qiyao at gcc dot gnu.org
  2012-03-16 10:18 ` palves at redhat dot com
@ 2012-03-16 10:55 ` qiyao at gcc dot gnu.org
  2012-03-16 10:58 ` palves at redhat dot com
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: qiyao at gcc dot gnu.org @ 2012-03-16 10:55 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=13858

--- Comment #2 from Yao Qi <qiyao at gcc dot gnu.org> 2012-03-16 10:54:54 UTC ---
(In reply to comment #1)
> > If I don't turn on displaced stepping in default, I get no fail in
> > gdb.base/break-interp.exp.  When I turn on displaced stepping in default (by
> > add a line in $build_gdb/gdb/testsuite/site.exp), I get following new fails in
> > native gdb on x86 linux.
> 
> So "set non-stop 1" isn't really necessary to trigger this, just "set
> displaced-stepping on", right?  Or are you really running the tests in
> non-stop+async mode?

I am running tests in non-stop mode.

When I put this line

  set GDBFLAGS "-ex \"set non-stop 1\""

in testsuite/site.exp, and `make check RUNTESTFLAGS="break-interp.exp"', I get 


FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO:
symbol-less: reach-_dl_debug_state: reach
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO:
symbol-less: entry point reached
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES:
symbol-less: reach-_dl_debug_state: reach
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES:
symbol-less: entry point reached
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO:
symbol-less: reach-_dl_debug_state: reach
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO:
symbol-less: entry point reached
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES:
symbol-less: reach-_dl_debug_state: reach
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES:
symbol-less: entry point reached


When I put this line

  set GDBFLAGS "-ex \"set target-async on\""

in testsuite/site.exp, I get no fail,

        === gdb Summary ===

# of expected passes        667
# of expected failures        20

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gdb/13858] `set non-stop 1' triggers some fails in gdb.base/break-interp.exp
  2012-03-16  7:07 [Bug gdb/13858] New: `set non-stop 1' triggers some fails in gdb.base/break-interp.exp qiyao at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2012-03-16 10:55 ` qiyao at gcc dot gnu.org
@ 2012-03-16 10:58 ` palves at redhat dot com
  2012-03-16 11:12 ` qiyao at gcc dot gnu.org
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: palves at redhat dot com @ 2012-03-16 10:58 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=13858

--- Comment #3 from Pedro Alves <palves at redhat dot com> 2012-03-16 10:57:44 UTC ---

>  set GDBFLAGS "-ex \"set non-stop 1\""

That's not proper non-stop, you need to enable async as well.

But, what happens with just

  set GDBFLAGS "-ex \"set displaced-stepping on\""

afterall?

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gdb/13858] `set non-stop 1' triggers some fails in gdb.base/break-interp.exp
  2012-03-16  7:07 [Bug gdb/13858] New: `set non-stop 1' triggers some fails in gdb.base/break-interp.exp qiyao at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2012-03-16 10:58 ` palves at redhat dot com
@ 2012-03-16 11:12 ` qiyao at gcc dot gnu.org
  2012-03-16 11:15 ` palves at redhat dot com
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: qiyao at gcc dot gnu.org @ 2012-03-16 11:12 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=13858

--- Comment #4 from Yao Qi <qiyao at gcc dot gnu.org> 2012-03-16 11:12:20 UTC ---
(In reply to comment #3)
> >  set GDBFLAGS "-ex \"set non-stop 1\""
> 
> That's not proper non-stop, you need to enable async as well.
> 

I got the same fails as below when run non-stop + async.

> But, what happens with just
> 
>   set GDBFLAGS "-ex \"set displaced-stepping on\""
> 
> afterall?
This is what I got,

Running ../../../gdb/gdb/testsuite/gdb.base/break-interp.exp ...
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO:
symbol-less: reach-_dl_debug_state: reach
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieNO:
symbol-less: entry point reached
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES:
symbol-less: reach-_dl_debug_state: reach
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugNO: BINprelinkNOdebugNOpieYES:
symbol-less: entry point reached
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO:
symbol-less: reach-_dl_debug_state: reach
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieNO:
symbol-less: entry point reached
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES:
symbol-less: reach-_dl_debug_state: reach
FAIL: gdb.base/break-interp.exp: LDprelinkNOdebugIN: BINprelinkNOdebugNOpieYES:
symbol-less: entry point reached

        === gdb Summary ===

# of expected passes        659
# of unexpected failures    8
# of expected failures        20
/home/yao/SourceCode/gnu/gdb/git.new/build-x86/gdb/testsuite/../../gdb/gdb
version  7.4.50.20120306-cvs -nw -nx -data-directory
/home/yao/SourceCode/gnu/gdb/git.new/build-x86/gdb/testsuite/../data-directory
-ex "set displaced-stepping on"

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gdb/13858] `set non-stop 1' triggers some fails in gdb.base/break-interp.exp
  2012-03-16  7:07 [Bug gdb/13858] New: `set non-stop 1' triggers some fails in gdb.base/break-interp.exp qiyao at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2012-03-16 11:12 ` qiyao at gcc dot gnu.org
@ 2012-03-16 11:15 ` palves at redhat dot com
  2012-03-16 12:07 ` [Bug gdb/13858] displaced stepping " qiyao at gcc dot gnu.org
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 10+ messages in thread
From: palves at redhat dot com @ 2012-03-16 11:15 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=13858

--- Comment #5 from Pedro Alves <palves at redhat dot com> 2012-03-16 11:14:48 UTC ---
Okay, then displaced-stepping is the culprit, and the issue title should be
changed.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gdb/13858] displaced stepping triggers some fails in gdb.base/break-interp.exp
  2012-03-16  7:07 [Bug gdb/13858] New: `set non-stop 1' triggers some fails in gdb.base/break-interp.exp qiyao at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2012-03-16 11:15 ` palves at redhat dot com
@ 2012-03-16 12:07 ` qiyao at gcc dot gnu.org
  2015-04-10  9:12 ` cvs-commit at gcc dot gnu.org
  2015-04-10  9:15 ` palves at redhat dot com
  8 siblings, 0 replies; 10+ messages in thread
From: qiyao at gcc dot gnu.org @ 2012-03-16 12:07 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=13858

Yao Qi <qiyao at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|`set non-stop 1' triggers   |displaced stepping triggers
                   |some fails in               |some fails in
                   |gdb.base/break-interp.exp   |gdb.base/break-interp.exp

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gdb/13858] displaced stepping triggers some fails in gdb.base/break-interp.exp
  2012-03-16  7:07 [Bug gdb/13858] New: `set non-stop 1' triggers some fails in gdb.base/break-interp.exp qiyao at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2012-03-16 12:07 ` [Bug gdb/13858] displaced stepping " qiyao at gcc dot gnu.org
@ 2015-04-10  9:12 ` cvs-commit at gcc dot gnu.org
  2015-04-10  9:15 ` palves at redhat dot com
  8 siblings, 0 replies; 10+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2015-04-10  9:12 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=13858

--- Comment #6 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Pedro Alves <palves@sourceware.org>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=906d60cf467b2d5a20ff04dbc4805a84ef313229

commit 906d60cf467b2d5a20ff04dbc4805a84ef313229
Author: Pedro Alves <palves@redhat.com>
Date:   Fri Apr 10 10:07:02 2015 +0100

    PR13858 - Can't do displaced stepping with no symbols

    Running break-interp.exp with the target always in non-stop mode trips
    on PR13858, as enabling non-stop also enables displaced stepping.

    The problem is that when GDB doesn't know where the entry point is, it
    doesn't know where to put the displaced stepping scratch pad.  The
    test added by this commit exercises this.  Without the fix, we get:

     (gdb) PASS: gdb.base/step-over-no-symbols.exp: displaced=on: break *$pc
     set displaced-stepping on
     (gdb) PASS: gdb.base/step-over-no-symbols.exp: displaced=on: set
displaced-stepping on
     stepi
     0x00000000004005be in ?? ()
     Entry point address is not known.
     (gdb) PASS: gdb.base/step-over-no-symbols.exp: displaced=on: stepi
     p /x $pc
     $2 = 0x4005be
     (gdb) PASS: gdb.base/step-over-no-symbols.exp: displaced=on: get after PC
     FAIL: gdb.base/step-over-no-symbols.exp: displaced=on: advanced

    The fix switches all GNU/Linux ports to get the entry point from
    AT_ENTRY in the target auxiliary vector instead of from symbols.  This
    is currently only done by PPC when Cell debugging is enabled, but I
    think all archs should be able to do the same.  Note that
    ppc_linux_displaced_step_location cached the result, I'm guessing to
    avoid constantly re-fetching the auxv out of remote targets, but
    that's no longer necessary nowadays, as the auxv blob is itself cached
    in the inferior object.  The ppc_linux_entry_point_addr global is
    obviously bad for multi-process too nowadays.

    Tested on x86-64 (-m64/-m32), PPC64 (-m64/-m32) and S/390 GNU/Linux.
    Yao tested the new test on ARM as well.

    gdb/ChangeLog:
    2015-04-10  Pedro Alves  <palves@redhat.com>

        PR gdb/13858
        * amd64-linux-tdep.c (amd64_linux_init_abi_common): Install
        linux_displaced_step_location as gdbarch_displaced_step_location
        hook.
        * arm-linux-tdep.c (arm_linux_init_abi): Likewise.
        * i386-linux-tdep.c (i386_linux_init_abi): Likewise.
        * linux-tdep.c (linux_displaced_step_location): New function,
        based on ppc_linux_displaced_step_location.
        * linux-tdep.h (linux_displaced_step_location): New declaration.
        * ppc-linux-tdep.c (ppc_linux_entry_point_addr): Delete.
        (ppc_linux_inferior_created, ppc_linux_displaced_step_location):
        Delete.
        (ppc_linux_init_abi): Install linux_displaced_step_location as
        gdbarch_displaced_step_location hook, even without Cell/B.E..
        (_initialize_ppc_linux_tdep): Don't install
        ppc_linux_inferior_created as inferior_created observer.
        * s390-linux-tdep.c (s390_gdbarch_init): Install
        linux_displaced_step_location as gdbarch_displaced_step_location
        hook.

    gdb/testsuite/
    2015-04-10  Pedro Alves  <palves@redhat.com>

        PR gdb/13858
        * gdb.base/step-over-no-symbols.exp: New file.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Bug gdb/13858] displaced stepping triggers some fails in gdb.base/break-interp.exp
  2012-03-16  7:07 [Bug gdb/13858] New: `set non-stop 1' triggers some fails in gdb.base/break-interp.exp qiyao at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2015-04-10  9:12 ` cvs-commit at gcc dot gnu.org
@ 2015-04-10  9:15 ` palves at redhat dot com
  8 siblings, 0 replies; 10+ messages in thread
From: palves at redhat dot com @ 2015-04-10  9:15 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=13858

Pedro Alves <palves at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #7 from Pedro Alves <palves at redhat dot com> ---
Fixed.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-04-10  9:15 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-16  7:07 [Bug gdb/13858] New: `set non-stop 1' triggers some fails in gdb.base/break-interp.exp qiyao at gcc dot gnu.org
2012-03-16  7:08 ` [Bug gdb/13858] " qiyao at gcc dot gnu.org
2012-03-16 10:18 ` palves at redhat dot com
2012-03-16 10:55 ` qiyao at gcc dot gnu.org
2012-03-16 10:58 ` palves at redhat dot com
2012-03-16 11:12 ` qiyao at gcc dot gnu.org
2012-03-16 11:15 ` palves at redhat dot com
2012-03-16 12:07 ` [Bug gdb/13858] displaced stepping " qiyao at gcc dot gnu.org
2015-04-10  9:12 ` cvs-commit at gcc dot gnu.org
2015-04-10  9:15 ` palves at redhat dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).