This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] python/19506 -- gdb.Breakpoint address location regression


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]