2011-09-02 Pedro Alves <pedro@codesourcery.com>

* top.c: Include interps.h.
	(execute_command): If the target can async, but the interpreter is
	in sync mode, synchronously wait for the command to finish before
	returning.
	(execute_command_to_string): Force the interpreter to sync mode.
	* infrun.c: Include interps.h.
	(fetch_inferior_event): Don't restore the prompt yet if the
	interpreter is in sync mode.
	* interps.c (interpreter_async): New global.
	* interps.h (interpreter_async): Declare.
	* inf-loop.c: Include interps.h.
	(inferior_event_handler): Don't print the language change or run
	breakpoint commands yet if the interpreter in is sync mode.
	* main.c (captured_command_loop): Flip the interpreter to async
	mode.
	* cli/cli-script.c: Include interps.h.
	(execute_user_command, while_command, if_command): Force the
	interpreter to sync mode.
	* python/python.c: Include interps.h.
	(python_command, execute_gdb_command): Force the interpreter to
	sync mode.
This commit is contained in:
Pedro Alves
2011-09-02 16:56:30 +00:00
parent c709acd150
commit b4a14fd09b
9 changed files with 104 additions and 14 deletions

View File

@@ -43,6 +43,12 @@
#include "exceptions.h"
#include "continuations.h"
/* True if the current interpreter in is async mode. See interps.h
for more details. This starts out disabled, until all the explicit
command line arguments (e.g., `gdb -ex "start" -ex "next"') are
processed. */
int interpreter_async = 0;
struct interp
{
/* This is the name in "-i=" and set interpreter. */