diff options
author | Vladimir Prus <vladimir@codesourcery.com> | 2008-03-14 18:57:44 +0000 |
---|---|---|
committer | Vladimir Prus <vladimir@codesourcery.com> | 2008-03-14 18:57:44 +0000 |
commit | 32c1e744c108afe9bebd41766ab3025279878f85 (patch) | |
tree | b2753a1c815eb9b5c2cca33ec36afe7ebcebf560 /gdb/mi | |
parent | c04ea773f9e9764a17382e6c1e0cf5a8d24df67a (diff) | |
download | gdb-32c1e744c108afe9bebd41766ab3025279878f85.zip gdb-32c1e744c108afe9bebd41766ab3025279878f85.tar.gz gdb-32c1e744c108afe9bebd41766ab3025279878f85.tar.bz2 |
Async mode fixes.
* Makefile.in (infcmd.o, inf-loop.o): Update dependencies.
* breakpoint.c (bpstat_do_actions): In async mode,
don't jump to top expecting stop_bpstat to be already
updated.
* event-loop.c (start_event_loop): Call async_enable_stdin
on exception.
* event-top.c (async_enable_stdin): Do nothing if sync_execution
is not set.
(command_handler): Do not setup continuation here.
(command_line_handler_continuation): Move to...
* top.c (command_line_handler_continuation): ... here.
(execute_command): In async mode, register continuation.
Don't check frame's language in running in async mode.
* exceptions.c (throw_exception): Don't do exec_error_cleanups.
* inf-loop.c (complete_execution): Inline into...
(inferior_event_handler): ... here. Clear target_executing before
doing any cleanups. Don't try to show prompt if the target was
resumed.
* infcmd.c (signal_command): Add support for async mode.
(finish_command): Only add continuation if the target was
successfully resumed.
* remote.c (init_async_opts): Register to_get_thread_local_address
handler.
* mi/mi-interp.c (mi_cmd_interpreter_exec): Don't mess
with sync_execution.
* tui/tui-interp.c (tui_command_loop): Call async_enable_stdin
on exception.
Diffstat (limited to 'gdb/mi')
-rw-r--r-- | gdb/mi/mi-interp.c | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c index 96229a0..05a64d8 100644 --- a/gdb/mi/mi-interp.c +++ b/gdb/mi/mi-interp.c @@ -224,23 +224,13 @@ mi_cmd_interpreter_exec (char *command, char **argv, int argc) for (i = 1; i < argc; i++) { - /* We had to set sync_execution = 0 for the mi (well really for Project - Builder's use of the mi - particularly so interrupting would work. - But for console commands to work, we need to initialize it to 1 - - since that is what the cli expects - before running the command, - and then set it back to 0 when we are done. */ - sync_execution = 1; - { - struct gdb_exception e = interp_exec (interp_to_use, argv[i]); - if (e.reason < 0) - { - mi_error_message = xstrdup (e.message); - result = MI_CMD_ERROR; - break; - } - } - do_exec_error_cleanups (ALL_CLEANUPS); - sync_execution = 0; + struct gdb_exception e = interp_exec (interp_to_use, argv[i]); + if (e.reason < 0) + { + mi_error_message = xstrdup (e.message); + result = MI_CMD_ERROR; + break; + } } mi_remove_notify_hooks (); |