python: Add qualified parameter to gdb.Breakpoint
authorSimon Marchi <simon.marchi@ericsson.com>
Wed, 13 Dec 2017 16:37:09 +0000 (11:37 -0500)
committerSimon Marchi <simon.marchi@ericsson.com>
Wed, 13 Dec 2017 16:44:28 +0000 (11:44 -0500)
commitb89641bab55496e52094282fabe146289c57b6d1
treee11073cae0fca2b9f16b9d55625fec84cad1af66
parent6892d2e4df57160f7103fef0340ae3f55ac8b2b3
python: Add qualified parameter to gdb.Breakpoint

This patch adds the possibility to pass a qualified=True|False parameter
when creating a breakpoint in Python.  It is equivalent to using
-qualified in a linespec.  The parameter actually accepts any Python
value, and converts it to boolean using Python's standard rules for
that (https://docs.python.org/3/library/stdtypes.html#truth).

Unlike the -source/-line/-function/-label parameters, it is possible to
use -qualified with a "normal" (non-explicit) linespec.  Therefore, it
is possible (unlike these other parameters) to use this new parameter
along with the spec parameter.

I updated the py-breakpoint.exp test.  To be able to test multiple
locations using a namespace, I had to switch the test case to compile as
C++.  If we really wanted to, we could run it as both C and C++, but
omit the C++-specific parts when running it as C.

gdb/ChangeLog:

* location.h (string_to_event_location): Add match_type
parameter.
* location.c (string_to_event_location): Likewise.
* python/py-breakpoint.c (bppy_init): Handle qualified
parameter.

gdb/doc/ChangeLog:

* python.texi (Manipulating breakpoints using Python): Document
qualified parameter to gdb.Breakpoint.

gdb/testsuite/ChangeLog:

* gdb.python/py-breakpoint.c (foo_ns::multiply): New function.
* gdb.python/py-breakpoint.exp: Compile the test case as c++,
call test_bkpt_qualified.
(test_bkpt_qualified): New proc.
gdb/ChangeLog
gdb/NEWS
gdb/doc/ChangeLog
gdb/doc/python.texi
gdb/location.c
gdb/location.h
gdb/python/py-breakpoint.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.python/py-breakpoint.c
gdb/testsuite/gdb.python/py-breakpoint.exp