public inbox for gdb-testers@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb/gdb-7.12-branch] Fix PR mi/20431 - Missing MI prompts after sync execution MI command (-exec-continue, etc.) errors
@ 2016-08-10  2:14 sergiodj+buildbot
  2016-08-10  2:08 ` Failures on Fedora-x86_64-native-gdbserver-m32, branch gdb-7.12-branch sergiodj+buildbot
                   ` (20 more replies)
  0 siblings, 21 replies; 22+ messages in thread
From: sergiodj+buildbot @ 2016-08-10  2:14 UTC (permalink / raw)
  To: gdb-testers

*** TEST RESULTS FOR COMMIT 4d38db46f6f6480ee33844164383ce40e5fc2440 ***

Author: Pedro Alves <palves@redhat.com>
Branch: gdb-7.12-branch
Commit: 4d38db46f6f6480ee33844164383ce40e5fc2440

Fix PR mi/20431 - Missing MI prompts after sync execution MI command (-exec-continue, etc.) errors

gdb 7.11 introduced an MI regression: a failing MI sync execution
command misses printing the MI prompt, and then all subsequent command
miss it too:

 $ gdb-7.11.1 -i=mi
 [...]
 p 1
 &"p 1\n"
 ~"$1 = 1"
 ~"\n"
 ^done
 (gdb)                                        <<< prompted ok
 -exec-continue
 ^error,msg="The program is not being run."   <<< missing prompt after this
 print 1
 &"print 1\n"
 ~"$2 = 1"
 ~"\n"
 ^done                                        <<< missing prompt after this


gdb 7.10.1 behaved correctly, even with "set mi-async on":

 -exec-continue
 ^error,msg="The program is not being run."
 (gdb)                                        <<< prompted ok

etc.

Bisecting points at:

  commit 0b333c5e7d6c
  Author: Pedro Alves <palves@redhat.com>
  Date:   Wed Sep 9 18:23:23 2015 +0100

      Merge async and sync code paths some more
  [...]

The problem is that when an exception is thrown, we leave the prompt
state set to PROMPT_BLOCKED, and then mi_execute_command_input_handler
doesn't print the prompt.  It used to work because before that patch,
we happened to skip disabling stdin if the current target didn't do
async (which it never does before execution).

I was surprised to find that this bug isn't caught by the testsuite,
so I made a thorough test that tests all combinations of pairs of:

 - a failing synchronous execution command
 - a failing non-execution command
 - a non-failing command

gdb/ChangeLog:
2016-08-09  Pedro Alves  <palves@redhat.com>

	PR mi/20431
	* mi/mi-main.c (mi_execute_command): Enable input and set prompt
	state to PROMPT_NEEDED.

gdb/testsuite/ChangeLog:
2016-08-09  Pedro Alves  <palves@redhat.com>

	PR mi/20431
	* gdb.mi/mi-cmd-error.exp: New file.


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

end of thread, other threads:[~2016-08-10  8:09 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-10  2:14 [binutils-gdb/gdb-7.12-branch] Fix PR mi/20431 - Missing MI prompts after sync execution MI command (-exec-continue, etc.) errors sergiodj+buildbot
2016-08-10  2:08 ` Failures on Fedora-x86_64-native-gdbserver-m32, branch gdb-7.12-branch sergiodj+buildbot
2016-08-10  2:31 ` Failures on Fedora-x86_64-native-extended-gdbserver-m32, " sergiodj+buildbot
2016-08-10  3:01 ` Failures on Fedora-x86_64-m32, " sergiodj+buildbot
2016-08-10  3:27 ` Failures on Fedora-x86_64-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-08-10  3:46 ` Failures on Fedora-x86_64-native-gdbserver-m64, " sergiodj+buildbot
2016-08-10  6:16 ` Failures on Fedora-x86_64-cc-with-index, " sergiodj+buildbot
2016-08-10  8:21 ` Failures on Debian-i686, " sergiodj+buildbot
2016-08-10  8:46 ` Failures on Debian-s390x-native-gdbserver-m64, " sergiodj+buildbot
2016-08-10  9:22 ` Failures on Fedora-i686, " sergiodj+buildbot
2016-08-10 15:24 ` Failures on Debian-s390x-m64, " sergiodj+buildbot
2016-08-10 15:24 ` Failures on Fedora-ppc64le-m64, " sergiodj+buildbot
2016-08-10 15:27 ` Failures on Debian-i686-native-extended-gdbserver, " sergiodj+buildbot
2016-08-10 15:55 ` Failures on Fedora-ppc64le-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-08-10 15:56 ` Failures on Fedora-ppc64le-cc-with-index, " sergiodj+buildbot
2016-08-10 15:59 ` Failures on Fedora-ppc64le-native-gdbserver-m64, " sergiodj+buildbot
2016-08-10 16:52 ` Failures on Fedora-ppc64be-m64, " sergiodj+buildbot
2016-08-10 16:59 ` Failures on Fedora-ppc64be-native-gdbserver-m64, " sergiodj+buildbot
2016-08-10 17:06 ` Failures on Fedora-ppc64be-native-extended-gdbserver-m64, " sergiodj+buildbot
2016-08-10 17:21 ` Failures on Debian-x86_64-m64, " sergiodj+buildbot
2016-08-10 17:23 ` Failures on Fedora-ppc64be-cc-with-index, " sergiodj+buildbot
2016-08-10 17:47 ` Failures on Debian-x86_64-native-extended-gdbserver-m64, " sergiodj+buildbot

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).