aboutsummaryrefslogtreecommitdiff
path: root/gdb/mi
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2005-01-13 02:35:39 +0000
committerAndrew Cagney <cagney@redhat.com>2005-01-13 02:35:39 +0000
commitc1043fc2c19efe25b2b183a7c550d5ba85d4c0e6 (patch)
tree33992f8388c297e887751b5b3fafb9eb24e55e1c /gdb/mi
parent2a78bfb53ccd6d78e97293502ae0b41ce4d120a5 (diff)
downloadgdb-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.c22
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;