binutils-gdb/gdb/testsuite/gdb.python
Pedro Alves 329ea57934 enable target async by default; separate MI and target notions of async
This finally makes background execution commands possible by default.

However, in order to do that, there's one last thing we need to do --
we need to separate the MI and target notions of "async".  Unlike the
CLI, where the user explicitly requests foreground vs background
execution in the execution command itself (c vs c&), MI chose to treat
"set target-async" specially -- setting it changes the default
behavior of execution commands.

So, we can't simply "set target-async" default to on, as that would
affect MI frontends.  Instead we have to make the setting MI-specific,
and teach MI about sync commands on top of an async target.

Because the "target" word in "set target-async" ends up as a potential
source of confusion, the patch adds a "set mi-async" option, and makes
"set target-async" a deprecated alias.

Rather than make the targets always async, this patch introduces a new
"maint set target-async" option so that the GDB developer can control
whether the target is async.  This makes it simpler to debug issues
arising only in the synchronous mode; important because sync mode
seems unlikely to go away.

Unlike in previous revisions, "set target-async" does not affect this
new maint parameter.  The rationale for this is that then one can
easily run the test suite in the "maint set target-async off" mode and
have tests that enable mi-async fail just like they fail on
non-async-capable targets.  This emulation is exactly the point of the
maint option.

I had asked Tom in a previous iteration to split the actual change of
the target async default to a separate patch, but it turns out that
that is quite awkward in this version of the patch, because with MI
async and target async decoupled (unlike in previous versions), if we
don't flip the default at the same time, then just "set target-async
on" alone never actually manages to do anything.  It's best to not
have that transitory state in the tree.

Given "set target-async on" now only has effect for MI, the patch goes
through the testsuite removing it from non-MI tests.  MI tests are
adjusted to use the new and less confusing "mi-async" spelling.

2014-05-29  Pedro Alves  <palves@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* NEWS: Mention "maint set target-async", "set mi-async", and that
	background execution commands are now always available.
	* target.h (target_async_permitted): Update comment.
	* target.c (target_async_permitted, target_async_permitted_1):
	Default to 1.
	(set_target_async_command): Rename to ...
	(maint_set_target_async_command): ... this.
	(show_target_async_command): Rename to ...
	(maint_show_target_async_command): ... this.
	(_initialize_target): Adjust.
	* infcmd.c (prepare_execution_command): Make extern.
	* inferior.h (prepare_execution_command): Declare.
	* infrun.c (set_observer_mode): Leave target async alone.
	* mi/mi-interp.c (mi_interpreter_init): Install
	mi_on_sync_execution_done as sync_execution_done observer.
	(mi_on_sync_execution_done): New function.
	(mi_execute_command_input_handler): Don't print the prompt if we
	just started a synchronous command with an async target.
	(mi_on_resume): Check sync_execution before printing prompt.
	* mi/mi-main.h (mi_async_p): Declare.
	* mi/mi-main.c: Include gdbcmd.h.
	(mi_async_p): New function.
	(mi_async, mi_async_1): New globals.
	(set_mi_async_command, show_mi_async_command, mi_async): New
	functions.
	(exec_continue): Call prepare_execution_command.
	(run_one_inferior, mi_cmd_exec_run, mi_cmd_list_target_features)
	(mi_execute_async_cli_command): Use mi_async_p.
	(_initialize_mi_main): Install "set mi-async".  Make
	"target-async" a deprecated alias.

2014-05-29  Pedro Alves  <palves@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.texinfo (Non-Stop Mode): Remove "set target-async 1"
	from example.
	(Asynchronous and non-stop modes): Document '-gdb-set mi-async'.
	Mention that target-async is now deprecated.
	(Maintenance Commands): Document maint set/show target-async.

2014-05-29  Pedro Alves  <palves@redhat.com>
	    Tom Tromey  <tromey@redhat.com>

	* gdb.base/async-shell.exp: Don't enable target-async.
	* gdb.base/async.exp
	* gdb.base/corefile.exp (corefile_test_attach): Remove 'async'
	parameter.  Adjust.
	(top level): Don't test with "target-async".
	* gdb.base/dprintf-non-stop.exp: Don't enable target-async.
	* gdb.base/gdb-sigterm.exp: Don't test with "target-async".
	* gdb.base/inferior-died.exp: Don't enable target-async.
	* gdb.base/interrupt-noterm.exp: Likewise.
	* gdb.mi/mi-async.exp: Use "mi-async" instead of "target-async".
	* gdb.mi/mi-nonstop-exit.exp: Likewise.
	* gdb.mi/mi-nonstop.exp: Likewise.
	* gdb.mi/mi-ns-stale-regcache.exp: Likewise.
	* gdb.mi/mi-nsintrall.exp: Likewise.
	* gdb.mi/mi-nsmoribund.exp: Likewise.
	* gdb.mi/mi-nsthrexec.exp: Likewise.
	* gdb.mi/mi-watch-nonstop.exp: Likewise.
	* gdb.multi/watchpoint-multi.exp: Adjust comment.
	* gdb.python/py-evsignal.exp: Don't enable target-async.
	* gdb.python/py-evthreads.exp: Likewise.
	* gdb.python/py-prompt.exp: Likewise.
	* gdb.reverse/break-precsave.exp: Don't test with "target-async".
	* gdb.server/solib-list.exp: Don't enable target-async.
	* gdb.threads/thread-specific-bp.exp: Likewise.
	* lib/mi-support.exp: Adjust to use mi-async.
2014-05-29 14:38:02 +01:00
..
lib-types.cc Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
lib-types.exp Fix and XFAIL test due to GCC PR55641, passes with clang 2014-04-24 13:22:10 -07:00
Makefile.in Add a new method 'disassemble' to gdb.Architecture class. 2013-02-21 01:46:57 +00:00
py-arch.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-arch.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-block.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-block.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-breakpoint.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-breakpoint.exp Extension Language API 2014-02-05 19:27:58 -08:00
py-cmd.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-cmd.exp Skip tests on completion and readline when readline lib isn't used 2014-03-26 21:11:08 +08:00
py-error.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-error.py Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-events-shlib.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-events.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-events.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-events.py Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-evsignal.exp enable target async by default; separate MI and target notions of async 2014-05-29 14:38:02 +01:00
py-evthreads.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-evthreads.exp enable target async by default; separate MI and target notions of async 2014-05-29 14:38:02 +01:00
py-explore-cc.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-explore.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-explore.cc Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-explore.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-finish-breakpoint.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-finish-breakpoint.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-finish-breakpoint.py Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-finish-breakpoint2.cc Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-finish-breakpoint2.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-finish-breakpoint2.py Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-frame-args.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-frame-args.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-frame-args.py Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-frame-inline.c Fix PR backtrace/15558 2014-04-18 10:34:09 +01:00
py-frame-inline.exp Fix PR backtrace/15558 2014-04-18 10:34:09 +01:00
py-frame.c
py-frame.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-framefilter-gdb.py.in Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-framefilter-mi.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-framefilter-mi.exp fix crash in frame filters 2014-01-23 08:03:50 -07:00
py-framefilter.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-framefilter.exp Fix typo in test name 2014-02-08 10:44:11 +01:00
py-framefilter.py fix erroneous error-handling in frame filter code 2014-01-23 08:03:51 -07:00
py-function.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-inferior.c gdb/ 2012-07-26 19:09:35 +00:00
py-inferior.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-infthread.c
py-infthread.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-linetable.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-linetable.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-linetable.S Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-mi.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-objfile-script-gdb.py.in Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-objfile-script.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-objfile-script.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-objfile.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-objfile.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-parameter.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-pp-integral.c [python] Add gdb.Type.name attribute. 2014-01-07 07:11:17 +04:00
py-pp-integral.exp Remove path from gdb.python/py-pp-integral.exp "source" test. 2014-01-10 07:57:09 +04:00
py-pp-integral.py [python] Add gdb.Type.name attribute. 2014-01-07 07:11:17 +04:00
py-pp-maint.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-pp-maint.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-pp-maint.py Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-pp-re-notag.c [Python] Make regexp collection printers work with typedefs as well. 2014-02-26 11:04:12 -08:00
py-pp-re-notag.exp [Python] Make regexp collection printers work with typedefs as well. 2014-02-26 11:04:12 -08:00
py-pp-re-notag.py [Python] Make regexp collection printers work with typedefs as well. 2014-02-26 11:04:12 -08:00
py-prettyprint.c Ensure unreferenced static symbols aren't omitted by clang (either marking them __attribute__((used)) or making them non-static) 2014-04-24 22:33:46 -07:00
py-prettyprint.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-prettyprint.py Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-progspace.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-progspace.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-prompt.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-prompt.exp enable target async by default; separate MI and target notions of async 2014-05-29 14:38:02 +01:00
py-section-script.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-section-script.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-section-script.py Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-shared-sl.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-shared.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-shared.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-strfns.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-strfns.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-symbol.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-symbol.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-symtab.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-sync-interp.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-sync-interp.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-template.cc Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-template.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-type.c Use bitpos and type to lookup a gdb.Field object when its name is 'None'. 2014-01-13 17:35:56 -08:00
py-type.exp Use bitpos and type to lookup a gdb.Field object when its name is 'None'. 2014-01-13 17:35:56 -08:00
py-typeprint.cc Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-typeprint.exp Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-typeprint.py Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
py-value-cc.cc Call overloaded operators to perform operations on gdb.Value objects. 2014-02-19 15:47:45 -08:00
py-value-cc.exp Call overloaded operators to perform operations on gdb.Value objects. 2014-02-19 15:47:45 -08:00
py-value.c [python] Fix gdb.Value.dynamic_type for reference values. 2014-04-07 14:18:44 -07:00
py-value.exp [python] Fix gdb.Value.dynamic_type for reference values. 2014-04-07 14:18:44 -07:00
python-1.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
python.c Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
python.exp PR gdb/13860: make -interpreter-exec console "list" behave more like "list". 2014-05-21 23:15:27 +01:00
source1 Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00
source2.py Update Copyright year range in all files maintained by GDB. 2014-01-01 07:54:24 +04:00