Fix PR python/17981
PR python/17981 notes that gdb.breakpoints() returns None when there are no breakpoints; whereas an empty list or tuple would be more in keeping with Python and the documentation. This patch fixes the bug by changing the no-breakpoint return to make an empty tuple. Built and regtested on x86-64 Fedora 23. 2016-05-23 Tom Tromey <tom@tromey.com> PR python/17981: * python/py-breakpoint.c (gdbpy_breakpoints): Return a new tuple when there are no breakpoints. 2016-05-23 Tom Tromey <tom@tromey.com> * python.texi (Basic Python): Document gdb.breakpoints return. 2016-05-23 Tom Tromey <tom@tromey.com> PR python/17981: * gdb.python/py-breakpoint.exp (test_bkpt_basic): Add test for no-breakpoint case.
This commit is contained in:
parent
224f10c1ae
commit
1957f6b89f
6 changed files with 26 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2016-05-23 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
PR python/17981:
|
||||||
|
* python/py-breakpoint.c (gdbpy_breakpoints): Return a new tuple
|
||||||
|
when there are no breakpoints.
|
||||||
|
|
||||||
2016-05-24 Pedro Alves <palves@redhat.com>
|
2016-05-24 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
PR gdb/19828
|
PR gdb/19828
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
2016-05-23 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
* python.texi (Basic Python): Document gdb.breakpoints return.
|
||||||
|
|
||||||
2016-05-24 Tom Tromey <tom@tromey.com>
|
2016-05-24 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
PR gdb/19194:
|
PR gdb/19194:
|
||||||
|
|
|
@ -236,7 +236,10 @@ and height, and its pagination will be disabled; @pxref{Screen Size}.
|
||||||
@findex gdb.breakpoints
|
@findex gdb.breakpoints
|
||||||
@defun gdb.breakpoints ()
|
@defun gdb.breakpoints ()
|
||||||
Return a sequence holding all of @value{GDBN}'s breakpoints.
|
Return a sequence holding all of @value{GDBN}'s breakpoints.
|
||||||
@xref{Breakpoints In Python}, for more information.
|
@xref{Breakpoints In Python}, for more information. In @value{GDBN}
|
||||||
|
version 7.11 and earlier, this function returned @code{None} if there
|
||||||
|
were no breakpoints. This peculiarity was subsequently fixed, and now
|
||||||
|
@code{gdb.breakpoints} returns an empty sequence in this case.
|
||||||
@end defun
|
@end defun
|
||||||
|
|
||||||
@findex gdb.parameter
|
@findex gdb.parameter
|
||||||
|
|
|
@ -746,13 +746,13 @@ gdbpy_breakpoints (PyObject *self, PyObject *args)
|
||||||
PyObject *list, *tuple;
|
PyObject *list, *tuple;
|
||||||
|
|
||||||
if (bppy_live == 0)
|
if (bppy_live == 0)
|
||||||
Py_RETURN_NONE;
|
return PyTuple_New (0);
|
||||||
|
|
||||||
list = PyList_New (0);
|
list = PyList_New (0);
|
||||||
if (!list)
|
if (!list)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* If iteratre_over_breakpoints returns non NULL it signals an error
|
/* If iterate_over_breakpoints returns non NULL it signals an error
|
||||||
condition. In that case abandon building the list and return
|
condition. In that case abandon building the list and return
|
||||||
NULL. */
|
NULL. */
|
||||||
if (iterate_over_breakpoints (build_bp_list, list) != NULL)
|
if (iterate_over_breakpoints (build_bp_list, list) != NULL)
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2016-05-23 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
|
PR python/17981:
|
||||||
|
* gdb.python/py-breakpoint.exp (test_bkpt_basic): Add test for
|
||||||
|
no-breakpoint case.
|
||||||
|
|
||||||
2016-05-24 Pedro Alves <palves@redhat.com>
|
2016-05-24 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
PR gdb/19828
|
PR gdb/19828
|
||||||
|
|
|
@ -34,12 +34,15 @@ proc test_bkpt_basic { } {
|
||||||
# Start with a fresh gdb.
|
# Start with a fresh gdb.
|
||||||
clean_restart ${testfile}
|
clean_restart ${testfile}
|
||||||
|
|
||||||
|
# We should start with no breakpoints.
|
||||||
|
gdb_test "python print (gdb.breakpoints())" "\\(\\)"
|
||||||
|
|
||||||
if ![runto_main] then {
|
if ![runto_main] then {
|
||||||
fail "Cannot run to main."
|
fail "Cannot run to main."
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# Initially there should be one breakpoint: main.
|
# Now there should be one breakpoint: main.
|
||||||
gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" \
|
gdb_py_test_silent_cmd "python blist = gdb.breakpoints()" \
|
||||||
"Get Breakpoint List" 0
|
"Get Breakpoint List" 0
|
||||||
gdb_test "python print (blist\[0\])" \
|
gdb_test "python print (blist\[0\])" \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue