python: accept address and explicit locations in gdb.decode_line
The gdb.decode_line python function is documented to support the same location expressions as the "break" command. It currently expects a linespec location. Instead of creating a linespec location directly, create the location via string_to_event_location_basic.
This commit is contained in:
parent
50e03d47b7
commit
68dadef54c
4 changed files with 17 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2016-10-07 Markus Metzger <markus.t.metzger@intel.com>
|
||||||
|
|
||||||
|
* python/python.c (gdbpy_decode_line): Call
|
||||||
|
string_to_event_location_basic instead of new_linespec_location.
|
||||||
|
|
||||||
2016-10-06 Sergio Durigan Junior <sergiodj@redhat.com>
|
2016-10-06 Sergio Durigan Junior <sergiodj@redhat.com>
|
||||||
|
|
||||||
* target.c (target_supports_multi_process): New function, moved
|
* target.c (target_supports_multi_process): New function, moved
|
||||||
|
|
|
@ -740,7 +740,7 @@ gdbpy_decode_line (PyObject *self, PyObject *args)
|
||||||
|
|
||||||
if (arg != NULL)
|
if (arg != NULL)
|
||||||
{
|
{
|
||||||
location = new_linespec_location (&arg);
|
location = string_to_event_location_basic (&arg, python_language);
|
||||||
make_cleanup_delete_event_location (location);
|
make_cleanup_delete_event_location (location);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2016-10-07 Markus Metzger <markus.t.metzger@intel.com>
|
||||||
|
|
||||||
|
* gdb.python/python.exp: Test decode_line("*0").
|
||||||
|
|
||||||
2016-10-06 Doug Evans <dje@google.com>
|
2016-10-06 Doug Evans <dje@google.com>
|
||||||
|
|
||||||
* gdb.python/py-value.exp (test_value_creation): Add test for large
|
* gdb.python/py-value.exp (test_value_creation): Add test for large
|
||||||
|
|
|
@ -251,6 +251,13 @@ gdb_py_test_silent_cmd {python symtab = gdb.decode_line ("func1,func2")} \
|
||||||
"test decode_line func1,func2" 1
|
"test decode_line func1,func2" 1
|
||||||
gdb_test {python print (symtab[0])} ",func2" "stop at comma in linespec"
|
gdb_test {python print (symtab[0])} ",func2" "stop at comma in linespec"
|
||||||
|
|
||||||
|
gdb_py_test_silent_cmd "python symtab = gdb.decode_line(\"*0\")" "Test decode_line *0" 1
|
||||||
|
gdb_test "python print (len(symtab))" "2" "Test decode_line *0 result length"
|
||||||
|
gdb_test "python print (symtab\[0\])" "None" "Test decode_line *0 unparsed"
|
||||||
|
gdb_test "python print (len(symtab\[1\]))" "1" "Test decode_line *0 locations length"
|
||||||
|
gdb_test "python print (symtab\[1\]\[0\].symtab)" "None" "Test decode_line *0 filename"
|
||||||
|
gdb_test "python print (symtab\[1\]\[0\].pc)" "0" "Test decode_line *0 pc"
|
||||||
|
|
||||||
# gdb.write
|
# gdb.write
|
||||||
gdb_test "python print (sys.stderr)" ".*gdb.GdbOutputErrorFile (instance|object) at.*" "Test stderr location"
|
gdb_test "python print (sys.stderr)" ".*gdb.GdbOutputErrorFile (instance|object) at.*" "Test stderr location"
|
||||||
gdb_test "python print (sys.stdout)" ".*gdb.GdbOutputFile (instance|object) at.*" "Test stdout location"
|
gdb_test "python print (sys.stdout)" ".*gdb.GdbOutputFile (instance|object) at.*" "Test stdout location"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue