Note to code reviewers: While working on Eli's comments, I've also used that opportunity to rename UNKNOWN_COMMAND_ERROR Into UNDEFINED_COMMAND_ERROR. Everything should be nicely consistent, now. > > This error code is only displayed when the corresponding error > > condition is met. Otherwise, the error record remains unchanged. > > For instance: > > > > -symbol-list-lines foo.adb > > ^error,msg="-symbol-list-lines: Unknown source file name." > > Doesn't this constitute a reason for bumping the MI revision? I do not think so, because the change is upward compatible (consumers are expected to ignore fields they do not handle). > > + ** The "^error" result record returned when trying to execute an undefined > > + GDB/MI command now provides a variable named "code" whose content is the > > + "undefined-command" error code. > > OK, but I would mention the fact that this can be inquired about, as > you described in your message. OK. New version attached. > > +@item "^error" "," "msg=" @var{c-string} [ "," "code=" @var{c-string} ] > > @findex ^error > > -The operation failed. The @code{@var{c-string}} contains the corresponding > > +The operation failed. The @var{msg} variable contains the corresponding > > error message. > > > > +If present, the @var{code} variable provides an error code on which > > The markup is wrong here: "code" is not a variable, it is a literal > symbol. You probably meant "c-string" instead. I've updated both "code" and "msg" (just above). Let me know if it reads better for you. ("code" is the name of a variable in GDB/MI lexicon). gdb/ChangeLog: (from Pedro Alves ) (from Joel Brobecker ) * exceptions.h (enum_errors) : New enum. * mi/mi-parse.c (mi_parse): Thow UNDEFINED_COMMAND_ERROR instead of a regular error when the GDB/MI command does not exist. * mi/mi-main.c (mi_cmd_list_features): Add "undefined-command-error-code". (mi_print_exception): Print an "undefined-command" error code if EXCEPTION.ERROR in UNDEFINED_COMMAND_ERROR. * NEWS: Add entry documenting the new "code" variable in "^error" result records. gdb/doc/ChangeLog: * gdb.texinfo (GDB/MI Result Records): Fix the syntax of the "^error" result record concerning the error message. Document the error code that may also be part of that result record. (GDB/MI Miscellaneous Commands): Document the "undefined-command-error-code" element in the output of the "-list-features" GDB/MI command. gdb/testsuite/ChangeLog: * gdb.mi/mi-undefined-cmd.exp: New testcase. All retested on x86_64-linux. OK to check in? Thank you, -- Joel