diff options
author | Andrew Cagney <cagney@redhat.com> | 2005-01-13 02:35:39 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2005-01-13 02:35:39 +0000 |
commit | c1043fc2c19efe25b2b183a7c550d5ba85d4c0e6 (patch) | |
tree | 33992f8388c297e887751b5b3fafb9eb24e55e1c /gdb/mi | |
parent | 2a78bfb53ccd6d78e97293502ae0b41ce4d120a5 (diff) | |
download | gdb-c1043fc2c19efe25b2b183a7c550d5ba85d4c0e6.zip gdb-c1043fc2c19efe25b2b183a7c550d5ba85d4c0e6.tar.gz gdb-c1043fc2c19efe25b2b183a7c550d5ba85d4c0e6.tar.bz2 |
2005-01-12 Andrew Cagney <cagney@gnu.org>
* exceptions.c (exception_none): New variable.
* Makefile.in: Update dependencies.
* interps.c: Include "exceptions.h".
(interpreter_exec_cmd, interp_exec): Update to return "struct
exception"
* exceptions.h (no_exception): Declare.
* tui/tui-interp.c (tui_exec): Update to return "struct exception"
* mi/mi-interp.c: Include "exceptions.h".
(mi_cmd_interpreter_exec, mi_interpreter_exec): Update to return
'struct exception".
* cli/cli-interp.c (cli_interpreter_exec, safe_execute_command)
(do_captured_execute_command): Update to use catch_exception.
* interps.h: Include "exceptions.h".
(interp_exec_ftype, interp_exec): Return "struct exception".
Diffstat (limited to 'gdb/mi')
-rw-r--r-- | gdb/mi/mi-interp.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c index 71abb75..a3af521 100644 --- a/gdb/mi/mi-interp.c +++ b/gdb/mi/mi-interp.c @@ -27,7 +27,7 @@ #include "inferior.h" #include "ui-out.h" #include "top.h" - +#include "exceptions.h" #include "mi-main.h" #include "mi-cmds.h" #include "mi-out.h" @@ -145,13 +145,14 @@ mi_interpreter_suspend (void *data) return 1; } -static int +static struct exception mi_interpreter_exec (void *data, const char *command) { + static struct exception ok; char *tmp = alloca (strlen (command) + 1); strcpy (tmp, command); mi_execute_command_wrapper (tmp); - return 1; + return exception_none; } /* Never display the default gdb prompt in mi case. */ @@ -236,12 +237,15 @@ mi_cmd_interpreter_exec (char *command, char **argv, int argc) 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; - if (interp_exec (interp_to_use, argv[i]) < 0) - { - mi_error_message = error_last_message (); - result = MI_CMD_ERROR; - break; - } + { + struct exception e = interp_exec (interp_to_use, argv[i]); + if (e.reason < 0) + { + mi_error_message = e.message; + result = MI_CMD_ERROR; + break; + } + } xfree (buff); do_exec_error_cleanups (ALL_CLEANUPS); sync_execution = 0; |