Fix valgrind error from gdb.decode_line

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
This commit is contained in:
Tom Tromey 2019-12-21 09:51:05 -07:00
parent b300843444
commit ff47f4f06d
4 changed files with 25 additions and 0 deletions

View file

@ -234,6 +234,10 @@ gdb_test "python print (len(symtab))" "2" "test decode_line current location"
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 {