[PATCH] python/19506 -- gdb.Breakpoint address location regression
Joel Brobecker
brobecker@adacore.com
Tue Jan 26 12:23:00 GMT 2016
Hi Keith,
On Thu, Jan 21, 2016 at 02:05:26PM -0800, Keith Seitz wrote:
> When the locations API was committed, it assumed that all valid
> arguments to the gdb.Breakpoint command were a linespec (aside from
> keywords describing various breakpoint properties). However, address
> locations are a separate class of locations which were overlooked by my
> patch.
>
> This patch introduces a new function analogous to the CLI function
> string_to_event_location. This new function only handles address and
> linespec locations. I have made no attempt to fully implement explicit
> locations.
>
> This patch fixes python/19506:
>
> (gdb) python gdb.Breakpoint("*main")
> Traceback (most recent call last):
> File "<string>", line 1, in <module>
> RuntimeError: Function "*main" not defined.
> Error while executing Python code.
>
> Now:
>
> (gdb) python gdb.Breakpoint("*main")
> Breakpoint 1 at 0x4005fb: file ../../../src/gdb/testsuite/gdb.python/py-breakpoint.c, line 32.
>
> gdb/ChangeLog
>
> * python/py-breakpoint.c (python_string_to_event_location): New
> function.
> (bppy_init): Use python_string_to_event_location instead of
> new_linespec_location.
>
> gdb/testsuite/gdb.python
>
> * gdb.python/py-breakpoint.exp (test_bkpt_address): New proc.
> (toplevel): Call test_bkpt_address.
Silly question, but does this work with " *main" (extra leading
space)?
It's too bad you have to explicitly check for '*' in the string.
Perhaps we should delegate that part to the linespec module?
Perhaps other areas might want to have the same (eg. the guile
breakpoint module).
--
Joel
More information about the Gdb-patches
mailing list