[PATCH v4 0/9] Locations API

Keith Seitz
2015-05-07T18:05:47Z

This is the next revision of the locations/explicit locations mega-API
change on which I've been working. Most of the changes in this
revision are fairly trivial.

As a reminder, this series proposes to change the API for create_breakpoint
and related functions to:

void
my_command (char *arg, int from_tty)
{
struct event_location *location;
struct cleanup *cleanup;

location = string_to_event_location (&arg, current_language);
cleanup = make_cleanup_delete_event_location (location);
if (*arg)
error ("junk at end of command");
/* do whatever with location, e.g., create_breakpoint (location, ...); */
do_cleanups (cleanup);
}

As with the previous revision, explicit-ui-cli tests will cause several
internal-errors because of gdb/17960 (internal-error when completing
"source.c:func").

This is easily fixed after that patch has been committed. This series
sent as-is does /not/ depend on those patches being applied.

---

Keith Seitz (9):
Explicit locations: rename "address string"/"addr_string" to "location"
Explicit locations: introduce new struct event_location-based API
Explicit locations: use new location API
Explicit locations: introduce address locations
Explicit locations: introduce probe locations
Explicit locations: introduce explicit locations
Explicit locations: add UI features for CLI
Explicit locations: MI support for explicit locations
Explicit locations: documentation updates

gdb/Makefile.in | 6
gdb/NEWS | 4
gdb/ax-gdb.c | 8
gdb/break-catch-throw.c | 23 +
gdb/breakpoint.c | 747 +++++++++++++++++------------
gdb/breakpoint.h | 51 +-
gdb/cli/cli-cmds.c | 47 ++
gdb/completer.c | 219 ++++++++-
gdb/doc/gdb.texinfo | 234 ++++++---
gdb/elfread.c | 4
gdb/guile/scm-breakpoint.c | 23 +
gdb/linespec.c | 589 ++++++++++++++---------
gdb/linespec.h | 42 +-
gdb/location.c | 734 ++++++++++++++++++++++++++++
gdb/location.h | 238 +++++++++
gdb/mi/mi-cmd-break.c | 76 +++
gdb/probe.c | 20 +
gdb/probe.h | 6
gdb/python/py-breakpoint.c | 12
gdb/python/py-finishbreakpoint.c | 16 -
gdb/python/python.c | 26 +
gdb/remote.c | 10
gdb/spu-tdep.c | 11
gdb/testsuite/gdb.base/help.exp | 2
gdb/testsuite/gdb.linespec/3explicit.c | 28 +
gdb/testsuite/gdb.linespec/cpexplicit.cc | 63 ++
gdb/testsuite/gdb.linespec/cpexplicit.exp | 112 ++++
gdb/testsuite/gdb.linespec/explicit.c | 56 ++
gdb/testsuite/gdb.linespec/explicit.exp | 393 +++++++++++++++
gdb/testsuite/gdb.linespec/explicit2.c | 24 +
gdb/testsuite/gdb.linespec/ls-errs.exp | 45 +-
gdb/testsuite/gdb.mi/mi-break.exp | 82 +++
gdb/testsuite/gdb.mi/mi-dprintf.exp | 12
gdb/testsuite/lib/mi-support.exp | 16 +
gdb/tracepoint.c | 16 +
gdb/tracepoint.h | 2
36 files changed, 3230 insertions(+), 767 deletions(-)
create mode 100644 gdb/location.c
create mode 100644 gdb/location.h
create mode 100644 gdb/testsuite/gdb.linespec/3explicit.c
create mode 100644 gdb/testsuite/gdb.linespec/cpexplicit.cc
create mode 100644 gdb/testsuite/gdb.linespec/cpexplicit.exp
create mode 100644 gdb/testsuite/gdb.linespec/explicit.c
create mode 100644 gdb/testsuite/gdb.linespec/explicit.exp
create mode 100644 gdb/testsuite/gdb.linespec/explicit2.c