This is the mail archive of the gdb-patches@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: [patch] fix for checking the command ambiguousness.


On 08/27/2013 11:10 PM, Pedro Alves wrote:
Is it possible to construct a testcase that triggers this?

yes, I found a test case to triggers this.

Before apply the patch, GDB does not recognize the command ambiguity as.

(gdb) python gdb.parameter("print symbo on")
(gdb) show print symbo
Ambiguous show print command "symbo": symbol, symbol-filename.
(gdb)




And after applied my patch GBD shows.

(gdb) python gdb.parameter("print symbo on")
Traceback (most recent call last):
  File "<string>", line 1, in <module>
RuntimeError: Could not find parameter `print symbo on'.
Error while executing Python code.
(gdb) set print symbo
Ambiguous set print command "symbo": symbol, symbol-filename.
(gdb)


Now
Find below updated patch with test suite also.

./
2013-07-27  Muhammad Bilal <mbilal@codesourcery.com>

* cli/cli-decode.c (lookup_cmd_composition): Check command ambiguousness
    with 'nfound' instead of CMD_LIST_AMBIGUOUS.



./testsuite/

2013-08-28  Muhammad Bilal  <mbilal@codesourcery.com>

    * gdb.python/py-parameter.exp: Test command ambiguousness.





Index: ../src/gdb/cli/cli-decode.c
===================================================================
RCS file: /cvs/src/src/gdb/cli/cli-decode.c,v
retrieving revision 1.119
diff -u -p -r1.119 cli-decode.c
--- ../src/gdb/cli/cli-decode.c    24 Apr 2013 14:29:17 -0000 1.119
+++ ../src/gdb/cli/cli-decode.c    28 Aug 2013 08:11:19 -0000
@@ -1729,7 +1729,7 @@ lookup_cmd_composition (const char *text
       *cmd = find_cmd (command, len, cur_list, 1, &nfound);
     }

-      if (*cmd == CMD_LIST_AMBIGUOUS)
+      if (nfound > 1)
     {
       return 0;              /* ambiguous */
     }

Index: ../src/gdb/testsuite/gdb.python/py-parameter.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.python/py-parameter.exp,v
retrieving revision 1.8
diff -u -p -r1.8 py-parameter.exp
--- ../src/gdb/testsuite/gdb.python/py-parameter.exp 1 Jan 2013 06:41:26 -0000 1.8 +++ ../src/gdb/testsuite/gdb.python/py-parameter.exp 28 Aug 2013 08:12:42 -0000
@@ -29,6 +29,13 @@ if { [skip_python_tests] } { continue }
 # We use "." here instead of ":" so that this works on win32 too.
gdb_test "python print (gdb.parameter ('directories'))" "$srcdir/$subdir.\\\$cdir.\\\$cwd"

+#Test command ambiguousness
+gdb_test "python gdb.parameter('print symbo on')" \
+"Traceback.*File.*line 1.*RuntimeError.*Could not find parameter.*print symbo on.*Error while executing Python code.*" \
+"set print symbo on"
+gdb_test "show print symbo" "Ambiguous show print command \"symbo\".*" \
+"show print symbo"
+
 # Test a simple boolean parameter.
 gdb_py_test_multiple "Simple gdb booleanparameter" \
    "python" "" \



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