Message ID | 1463629620-8915-1-git-send-email-tom@tromey.com |
---|---|
State | New |
Headers | show |
Tom Tromey <tom@tromey.com> writes: > 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. > We need to update doc about gdb.breakpoints () for this change. > > - /* If iteratre_over_breakpoints returns non NULL it signals an error > + /* If iterate_over_breakpoints returns non NULL it signals an error This is a typo fix, can go in as a separate patch. Otherwise, patch is good to me.
Yao> We need to update doc about gdb.breakpoints () for this change. The docs already seemed correct: -- Function: gdb.breakpoints () Return a sequence holding all of GDB's breakpoints. *Note Breakpoints In Python::, for more information. Tom
Tom Tromey <tom@tromey.com> writes: > The docs already seemed correct: > > -- Function: gdb.breakpoints () > Return a sequence holding all of GDB's breakpoints. *Note > Breakpoints In Python::, for more information. Yes, it is correct, but it is better to explicitly document an empty sequence is returned if there are no breakpoints.
>> - /* If iteratre_over_breakpoints returns non NULL it signals an error >> + /* If iterate_over_breakpoints returns non NULL it signals an error Yao> This is a typo fix, can go in as a separate patch. Otherwise, patch is Yao> good to me. Oops, I included it in my latest. If that's not ok, let me know, and I'll remove it. Tom
Tom Tromey <tom@tromey.com> writes: > Oops, I included it in my latest. > If that's not ok, let me know, and I'll remove it. That is fine by me. It is better to move typo fix in a separate patch in the future.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 92024b6..53b11c0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ 2016-05-18 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-18 Tom Tromey <tom@tromey.com> + * rust-lang.c (rust_subscript): Initialize "high". 2016-05-17 Simon Marchi <simon.marchi@ericsson.com> diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c index 611a41e..ed9cae6 100644 --- a/gdb/python/py-breakpoint.c +++ b/gdb/python/py-breakpoint.c @@ -746,13 +746,13 @@ gdbpy_breakpoints (PyObject *self, PyObject *args) PyObject *list, *tuple; if (bppy_live == 0) - Py_RETURN_NONE; + return PyTuple_New (0); list = PyList_New (0); if (!list) 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 NULL. */ if (iterate_over_breakpoints (build_bp_list, list) != NULL) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index a773c63..c09e858 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2016-05-18 Tom Tromey <tom@tromey.com> + + PR python/17981: + * gdb.python/py-breakpoint.exp (test_bkpt_basic): Add test for + no-breakpoint case. + 2016-05-18 Simon Marchi <simon.marchi@ericsson.com> * gdb.mi/mi-threads-interrupt.c: New file. diff --git a/gdb/testsuite/gdb.python/py-breakpoint.exp b/gdb/testsuite/gdb.python/py-breakpoint.exp index d1d1b22..0116705 100644 --- a/gdb/testsuite/gdb.python/py-breakpoint.exp +++ b/gdb/testsuite/gdb.python/py-breakpoint.exp @@ -34,12 +34,15 @@ proc test_bkpt_basic { } { # Start with a fresh gdb. clean_restart ${testfile} + # We should start with no breakpoints. + gdb_test "python print gdb.breakpoints()" "\\(\\)" + if ![runto_main] then { fail "Cannot run to main." 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()" \ "Get Breakpoint List" 0 gdb_test "python print (blist\[0\])" \