PR symtab/12535 points out that gdb.decode_line("") will cause a
valgrind report.
I think the empty linespec does not really make sense. So, this patch
changes gdb.decode_line to treat a whitespace-only linespec the same
as a non-existing argument.
gdb/ChangeLog
2020-01-14 Tom Tromey <tom@tromey.com>
PR symtab/12535:
* python/python.c (gdbpy_decode_line): Treat empty string the same
as no argument.
gdb/testsuite/ChangeLog
2020-01-14 Tom Tromey <tom@tromey.com>
PR symtab/12535:
* gdb.python/python.exp: Test decode_line with empty string
argument.
Change-Id: I1d95812b4b7a21d69a3e9afd05b9e3141a931897
+2020-01-14 Tom Tromey <tom@tromey.com>
+
+ PR symtab/12535:
+ * python/python.c (gdbpy_decode_line): Treat empty string the same
+ as no argument.
+
2020-01-14 Tom Tromey <tom@tromey.com>
* Makefile.in (CLIBS): Remove second use of $(LIBIBERTY).
if (! PyArg_ParseTuple (args, "|s", &arg))
return NULL;
+ /* Treat a string consisting of just whitespace the same as
+ NULL. */
+ if (arg != NULL)
+ {
+ arg = skip_spaces (arg);
+ if (*arg == '\0')
+ arg = NULL;
+ }
+
if (arg != NULL)
location = string_to_event_location_basic (&arg, python_language,
symbol_name_match_type::WILD);
+2020-01-14 Tom Tromey <tom@tromey.com>
+
+ PR symtab/12535:
+ * gdb.python/python.exp: Test decode_line with empty string
+ argument.
+
2020-01-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
* gdb.base/skip-inline.exp: Extend test.
gdb_test "python print (symtab\[0\])" "None" "test decode_line expression parse"
gdb_test "python print (len(symtab\[1\]))" "1" "test decode_line current location"
+# Test that decode_line with an empty string argument does not crash.
+gdb_py_test_silent_cmd "python symtab2 = gdb.decode_line('')" \
+ "test decode_line with empty string" 1
+
if { [is_remote host] } {
set python_c [string_to_regexp "python.c"]
} else {