Fix crash in "document" command
authorTom Tromey <tromey@adacore.com>
Fri, 18 Nov 2022 16:04:39 +0000 (09:04 -0700)
committerTom Tromey <tromey@adacore.com>
Mon, 28 Nov 2022 13:48:43 +0000 (06:48 -0700)
PR cli/29800 points out that "document" will now crash when the
argument is an undefined command.  This is a regression due to the
"document user-defined aliases" patch.

Approved-By: Joel Brobecker <brobecker@adacore.com>
Reviewed-By: Philippe Waroquiers <philippe.waroquiers@skynet.be>
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29800

gdb/cli/cli-script.c
gdb/testsuite/gdb.base/document.exp

index 2442f7ae38b41e0599072aa408183825bebdaeea..2101d6fface9d803db708c343ada96b4c9cfa985 100644 (file)
@@ -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))
index 2d8f6b8809079f390aa72a3d7f67d548d22f40b8..6f426510d29dbbac1b9976246a258ac68e293c91 100644 (file)
@@ -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\"\\."