This is the mail archive of the gdb-prs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug cli/15718] inferior calls confuse target-async


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

--- Comment #1 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".

The branch, master has been updated
       via  beb460e8d2ddf5327a6ab146055a6e6e9f552a4b (commit)
      from  5fc35d961bda7f8d40bfad9ca458a6b08de02bcb (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

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

commit beb460e8d2ddf5327a6ab146055a6e6e9f552a4b
Author: Pedro Alves <palves@redhat.com>
Date:   Thu Mar 20 17:03:43 2014 +0000

    make dprintf.exp pass in target async mode

    When target-async is enabled, dprintf.exp fails:

     Running ../../../src/gdb/testsuite/gdb.base/dprintf.exp ...
     FAIL: gdb.base/dprintf.exp: 1st dprintf, call
     FAIL: gdb.base/dprintf.exp: 2nd dprintf, call
     FAIL: gdb.base/dprintf.exp: Set dprintf function
     FAIL: gdb.base/dprintf.exp: 1st dprintf, fprintf
     FAIL: gdb.base/dprintf.exp: 2nd dprintf, fprintf

     Breakpoint 2, main (argc=1, argv=0x7fffffffd3f8) at
../../../src/gdb/testsuite/gdb.base/dprintf.c:33
     33        int loc = 1234;
     (gdb) continue
     Continuing.
     kickoff 1234
     also to stderr 1234
     At foo entry
     (gdb) FAIL: gdb.base/dprintf.exp: 1st dprintf, call

    The problem is that GDB gave the prompt back to the user too early.

    This happens when calling functions while handling an event that
    doesn't cause a user visible stop.  dprintf with "set dprintf-style
    gdb" is one such case.  This patch adds a test case that has a
    breakpoint with a condition that calls a function that returns false,
    so that regression testing isn't dependent on the implementation of
    dprintf.

    The problem happens because run_inferior_call causes GDB to forget
    that it is running in sync_execution mode, so any event that runs an
    inferior call causes fetch_inferior_event to display the prompt, even
    if the event should not result in a user visible stop (that is, gdb
    resumes the inferior and waits for the next event).

    This patch fixes the issue by noticing when GDB was in sync_execution
    mode in run_inferior_call, and taking care to restore this state
    afterward.

    gdb/
    2014-03-20  Tom Tromey  <tromey@redhat.com>

        PR cli/15718
        * infcall.c: Include event-top.h.
        (run_inferior_call): Call async_disable_stdin if needed.

    gdb/testsuite/
    2014-03-20  Tom Tromey  <tromey@redhat.com>
            Pedro Alves  <palves@redhat.com>

        PR cli/15718
        * gdb.base/condbreak-call-false.c: New file.
        * gdb.base/condbreak-call-false.exp: New file.

-----------------------------------------------------------------------

Summary of changes:
 gdb/ChangeLog                                   |    6 +++
 gdb/infcall.c                                   |   10 ++++++
 gdb/testsuite/ChangeLog                         |    7 ++++
 gdb/testsuite/gdb.base/condbreak-call-false.c   |   39 +++++++++++++++++++++++
 gdb/testsuite/gdb.base/condbreak-call-false.exp |   33 +++++++++++++++++++
 5 files changed, 95 insertions(+), 0 deletions(-)
 create mode 100644 gdb/testsuite/gdb.base/condbreak-call-false.c
 create mode 100644 gdb/testsuite/gdb.base/condbreak-call-false.exp

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]