This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: MI return error changed from 6.3 to 6.4?


On Fri, Apr 07, 2006 at 05:54:57PM +0200, Dirk Behme wrote:
> GDB 6.4:
> 
> (gdb)
> srwwerrweweer
> &"srwwerrweweer\n"
> &"Undefined command: \"srwwerrweweer\".  Try \"help\".\n"
> ^done
> (gdb)

Two things.  Here's the cause:

1108            argv[0] = "console";
1109            argv[1] = context->command;
1110            mi_cmd_interpreter_exec ("-interpreter-exec", argv, 2);
1111
1112            /* If we changed interpreters, DON'T print out anything. */
1113            if (current_interp_named_p (INTERP_MI)
1114                || current_interp_named_p (INTERP_MI1)
1115                || current_interp_named_p (INTERP_MI2)
1116                || current_interp_named_p (INTERP_MI3))
1117              {
(gdb) 
1118                /* print the result */
1119                /* FIXME: Check for errors here. */
1120                fputs_unfiltered (context->token, raw_stdout);
1121                fputs_unfiltered ("^done", raw_stdout);
1122                mi_out_put (uiout, raw_stdout);
1123                mi_out_rewind (uiout);
1124                fputs_unfiltered ("\n", raw_stdout);
1125                args->action = EXECUTE_COMMAND_DISPLAY_PROMPT;
1126                args->rc = MI_CMD_DONE;
1127              }

mi_cmd_interpreter_exec has conveniently returned MI_CMD_ERROR.
So, this should be easy to fix.  Thanks for the report.

> With this, a GUI interface has the problem that it can't decide if
> the GDB has some problems parsing the command given to it or not
> because it scans for the "^error" string as result. With 6.4 this
> doesn't work any more.

This only happens if you're sending CLI commands (i.e. commands which
don't start with a "-") to GDB directly.  Otherwise you'll get the
expected ^error.  A better way to do this than relying on "the CLI
hack" for unknown commands is to use the new -interpreter-exec, and
that will return the error OK:

zz
&"zz\n"
&"Undefined command: \"zz\".  Try \"help\".\n"
^done
(gdb) 

-interpreter-exec console "zz"
&"Undefined command: \"zz\".  Try \"help\".\n"
^error,msg="Undefined command: \"zz\".  Try \"help\"."
(gdb) 

-- 
Daniel Jacobowitz
CodeSourcery


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]