aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/NEWS3
-rw-r--r--gdb/python/py-breakpoint.c13
-rw-r--r--gdb/testsuite/gdb.python/py-breakpoint.exp9
3 files changed, 19 insertions, 6 deletions
diff --git a/gdb/NEWS b/gdb/NEWS
index 647b725..9641839 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -75,6 +75,9 @@
** The gdb.MICommand.installed property can only be set to True or
False.
+ ** The 'qualified' argument to gdb.Breakpoint constructor will no
+ longer accept non-bool types.
+
* Debugger Adapter Protocol changes
** The "scopes" request will now return a scope holding global
diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c
index 1edd556..752917c 100644
--- a/gdb/python/py-breakpoint.c
+++ b/gdb/python/py-breakpoint.c
@@ -927,14 +927,14 @@ bppy_init (PyObject *self, PyObject *args, PyObject *kwargs)
char *label = NULL;
char *source = NULL;
char *function = NULL;
- PyObject * qualified = NULL;
+ PyObject *qualified = Py_False;
- if (!gdb_PyArg_ParseTupleAndKeywords (args, kwargs, "|siiOOsssOO", keywords,
+ if (!gdb_PyArg_ParseTupleAndKeywords (args, kwargs, "|siiOOsssOO!", keywords,
&spec, &type, &access_type,
&internal,
&temporary, &source,
&function, &label, &lineobj,
- &qualified))
+ &PyBool_Type, &qualified))
return -1;
@@ -982,10 +982,11 @@ bppy_init (PyObject *self, PyObject *args, PyObject *kwargs)
case bp_hardware_breakpoint:
{
location_spec_up locspec;
+ gdb_assert (PyBool_Check (qualified));
symbol_name_match_type func_name_match_type
- = (qualified != NULL && PyObject_IsTrue (qualified)
- ? symbol_name_match_type::FULL
- : symbol_name_match_type::WILD);
+ = (qualified == Py_True
+ ? symbol_name_match_type::FULL
+ : symbol_name_match_type::WILD);
if (spec != NULL)
{
diff --git a/gdb/testsuite/gdb.python/py-breakpoint.exp b/gdb/testsuite/gdb.python/py-breakpoint.exp
index 934690d..6f9245c 100644
--- a/gdb/testsuite/gdb.python/py-breakpoint.exp
+++ b/gdb/testsuite/gdb.python/py-breakpoint.exp
@@ -792,6 +792,15 @@ proc_with_prefix test_bkpt_qualified {} {
$one_location_re \
"qualified true"
+ # Test qualified with a non-bool type.
+ delete_breakpoints
+ gdb_test \
+ "python gdb.Breakpoint(\"multiply\", qualified=None)" \
+ [multi_line \
+ "Python Exception <class 'TypeError'>: argument 10 must be bool, not None" \
+ "Error occurred in Python: argument 10 must be bool, not None"] \
+ "qualified non_bool_type"
+
# Test qualified=True with an explicit function.
delete_breakpoints
gdb_test \