From eec017952ae07b0ec22e486270c8d17a5ca8411d Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Fri, 5 May 2006 15:50:20 +0000 Subject: * mi/mi-main.c (captured_mi_execute_command): Check the return value of -interpreter-exec. --- gdb/mi/mi-main.c | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) (limited to 'gdb/mi') diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c index 213f97a..c798c90 100644 --- a/gdb/mi/mi-main.c +++ b/gdb/mi/mi-main.c @@ -1107,23 +1107,37 @@ captured_mi_execute_command (struct ui_out *uiout, void *data) /* Call the "console" interpreter. */ argv[0] = "console"; argv[1] = context->command; - mi_cmd_interpreter_exec ("-interpreter-exec", argv, 2); + args->rc = mi_cmd_interpreter_exec ("-interpreter-exec", argv, 2); - /* If we changed interpreters, DON'T print out anything. */ + /* If we changed interpreters, DON'T print out anything. */ if (current_interp_named_p (INTERP_MI) || current_interp_named_p (INTERP_MI1) || current_interp_named_p (INTERP_MI2) || current_interp_named_p (INTERP_MI3)) { - /* print the result */ - /* FIXME: Check for errors here. */ - fputs_unfiltered (context->token, raw_stdout); - fputs_unfiltered ("^done", raw_stdout); - mi_out_put (uiout, raw_stdout); - mi_out_rewind (uiout); - fputs_unfiltered ("\n", raw_stdout); - args->action = EXECUTE_COMMAND_DISPLAY_PROMPT; - args->rc = MI_CMD_DONE; + if (args->rc == MI_CMD_DONE) + { + fputs_unfiltered (context->token, raw_stdout); + fputs_unfiltered ("^done", raw_stdout); + mi_out_put (uiout, raw_stdout); + mi_out_rewind (uiout); + fputs_unfiltered ("\n", raw_stdout); + args->action = EXECUTE_COMMAND_DISPLAY_PROMPT; + } + else if (args->rc == MI_CMD_ERROR) + { + if (mi_error_message) + { + fputs_unfiltered (context->token, raw_stdout); + fputs_unfiltered ("^error,msg=\"", raw_stdout); + fputstr_unfiltered (mi_error_message, '"', raw_stdout); + xfree (mi_error_message); + fputs_unfiltered ("\"\n", raw_stdout); + } + mi_out_rewind (uiout); + } + else + mi_out_rewind (uiout); } break; } -- cgit v1.1