diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c index 2442f7ae38b..2101d6fface 100644 --- a/gdb/cli/cli-script.c +++ b/gdb/cli/cli-script.c @@ -1515,6 +1515,8 @@ do_document_command (const char *comname, int from_tty, validate_comname (&comname); lookup_cmd_composition (comfull, &alias, &prefix_cmd, &c); + if (c == nullptr) + error (_("Undefined command: \"%s\"."), comfull); if (c->theclass != class_user && (alias == nullptr || alias->theclass != class_alias)) diff --git a/gdb/testsuite/gdb.base/document.exp b/gdb/testsuite/gdb.base/document.exp index 2d8f6b88090..6f426510d29 100644 --- a/gdb/testsuite/gdb.base/document.exp +++ b/gdb/testsuite/gdb.base/document.exp @@ -28,3 +28,7 @@ gdb_test_multiple "define do-document" "" { } gdb_test_no_output "do-document" "invoke do-document" gdb_test "help do-document" "usage: do-document" "invoke help do-document" + +# Test that document of a non-existing command prints an error. There +# was a regression at one point causing this to crash. +gdb_test "document nosuchcommand" "Undefined command: \"nosuchcommand\"\\."