This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] fix for checking the command ambiguousness.
- From: Muhammad Bilal <mbilal at codesourcery dot com>
- To: Pedro Alves <palves at redhat dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Wed, 28 Aug 2013 13:16:33 +0500
- Subject: Re: [patch] fix for checking the command ambiguousness.
- Authentication-results: sourceware.org; auth=none
- References: <521C6FDD dot 3090909 at codesourcery dot com> <521CEB86 dot 7060106 at redhat dot com>
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" "" \