public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug remote/15266] New: pop_target calls target_close too early
@ 2013-03-11  6:14 jan.kratochvil at redhat dot com
  2013-07-01 13:31 ` [Bug remote/15266] " tromey at redhat dot com
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: jan.kratochvil at redhat dot com @ 2013-03-11  6:14 UTC (permalink / raw)
  To: gdb-prs

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

             Bug #: 15266
           Summary: pop_target calls target_close too early
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: remote
        AssignedTo: unassigned@sourceware.org
        ReportedBy: jan.kratochvil@redhat.com
    Classification: Unclassified


Found by Markus Metzger.

RE: Crash of GDB with gdbserver btrace enabled [Re: [patch v9 00/23] branch
tracing support for Atom]
http://sourceware.org/ml/gdb-patches/2013-03/msg00271.html
Message-ID:
<A78C989F6D9628469189715575E55B2307B9BC7C@IRSMSX102.ger.corp.intel.com>

-- 
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] 4+ messages in thread

* [Bug remote/15266] pop_target calls target_close too early
  2013-03-11  6:14 [Bug remote/15266] New: pop_target calls target_close too early jan.kratochvil at redhat dot com
@ 2013-07-01 13:31 ` tromey at redhat dot com
  2013-07-25 14:34 ` cvs-commit at gcc dot gnu.org
  2013-07-25 14:48 ` tromey at redhat dot com
  2 siblings, 0 replies; 4+ messages in thread
From: tromey at redhat dot com @ 2013-07-01 13:31 UTC (permalink / raw)
  To: gdb-prs

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

Tom Tromey <tromey at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tromey at redhat dot com
           Assignee|unassigned at sourceware dot org   |tromey at redhat dot com

--- Comment #1 from Tom Tromey <tromey at redhat dot com> ---
I'm testing a patch for this.

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


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

* [Bug remote/15266] pop_target calls target_close too early
  2013-03-11  6:14 [Bug remote/15266] New: pop_target calls target_close too early jan.kratochvil at redhat dot com
  2013-07-01 13:31 ` [Bug remote/15266] " tromey at redhat dot com
@ 2013-07-25 14:34 ` cvs-commit at gcc dot gnu.org
  2013-07-25 14:48 ` tromey at redhat dot com
  2 siblings, 0 replies; 4+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2013-07-25 14:34 UTC (permalink / raw)
  To: gdb-prs

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

--- Comment #2 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
CVSROOT:    /cvs/src
Module name:    src
Changes by:    tromey@sourceware.org    2013-07-25 14:34:51

Modified files:
    gdb            : ChangeLog bfd-target.c monitor.c 
                     remote-m32r-sdi.c remote-mips.c remote-sim.c 
                     target.c target.h tracepoint.c 

Log message:
    remove pop_target

    This patch fixes the target double-close problem (PR remote/15266),
    and in the process removes pop_target entire (PR remote/15256).

    The first issue is that pop_target calls target_close.  However, it
    then calls unpush_target, which also calls target_close.  This means
    targets must be able to be closed twice.  Not only is this strange,
    but it also directly contradicts the contract of to_xclose targets.
    (We currently have just a single such target, and it is never pushed;
    but I plan to add more, and so this latent bug is triggered.)

    The second issue is that it seems to me that calling pop_target is
    often unsafe.  This is what cropped up in 15256, where the remote
    target assumed that it could pop_target -- but there was another
    target higher on the stack, leading to confusion.

    But, it is always just as easy to call unpush_target as it is to call
    pop_target; and it is also safer.  So, removing pop_target seemed like
    an improvement.

    Finally, this adds an assertion to target_close to ensure that no
    currently-pushed target can be closed.

    Built and regtested on x86-64 Fedora 18; both natively and using the
    native-gdbserver board file.

    PR remote/15256, PR remote/15266:
    * bfd-target.c (target_bfd_reopen): Initialize to_magic.
    * monitor.c (monitor_detach): Use unpush_target.
    * remote-m32r-sdi.c (m32r_detach): Use unpush_target.
    * remote-mips.c (mips_detach): Use unpush_target.  Don't
    call mips_close.
    * remote-sim.c (gdbsim_detach): Use unpush_target.
    * target.c (pop_target): Remove.
    (pop_all_targets_above): Don't call target_close.
    (target_close): Assert that the target is unpushed.
    * target.h (pop_target): Don't declare.
    * tracepoint.c (tfile_open): Use unpush_target.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/ChangeLog.diff?cvsroot=src&r1=1.15829&r2=1.15830
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/bfd-target.c.diff?cvsroot=src&r1=1.23&r2=1.24
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/monitor.c.diff?cvsroot=src&r1=1.117&r2=1.118
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/remote-m32r-sdi.c.diff?cvsroot=src&r1=1.73&r2=1.74
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/remote-mips.c.diff?cvsroot=src&r1=1.142&r2=1.143
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/remote-sim.c.diff?cvsroot=src&r1=1.121&r2=1.122
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/target.c.diff?cvsroot=src&r1=1.342&r2=1.343
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/target.h.diff?cvsroot=src&r1=1.269&r2=1.270
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/tracepoint.c.diff?cvsroot=src&r1=1.320&r2=1.321

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


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

* [Bug remote/15266] pop_target calls target_close too early
  2013-03-11  6:14 [Bug remote/15266] New: pop_target calls target_close too early jan.kratochvil at redhat dot com
  2013-07-01 13:31 ` [Bug remote/15266] " tromey at redhat dot com
  2013-07-25 14:34 ` cvs-commit at gcc dot gnu.org
@ 2013-07-25 14:48 ` tromey at redhat dot com
  2 siblings, 0 replies; 4+ messages in thread
From: tromey at redhat dot com @ 2013-07-25 14:48 UTC (permalink / raw)
  To: gdb-prs

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

Tom Tromey <tromey at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|---                         |7.7

--- Comment #3 from Tom Tromey <tromey 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] 4+ messages in thread

end of thread, other threads:[~2013-07-25 14:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-11  6:14 [Bug remote/15266] New: pop_target calls target_close too early jan.kratochvil at redhat dot com
2013-07-01 13:31 ` [Bug remote/15266] " tromey at redhat dot com
2013-07-25 14:34 ` cvs-commit at gcc dot gnu.org
2013-07-25 14:48 ` tromey 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).