This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH 1/3] MI: fix the result of -break-insert with multiple locations
- From: Mircea Gherzan <mircea dot gherzan at intel dot com>
- To: tromey at redhat dot com, vladimir at codesourcery dot com, marc dot khouzam at ericsson dot com
- Cc: gdb-patches at sourceware dot org, mgherzan at gmail dot com, Mircea Gherzan <mircea dot gherzan at intel dot com>
- Date: Thu, 28 Feb 2013 19:29:55 +0100
- Subject: [PATCH 1/3] MI: fix the result of -break-insert with multiple locations
The current MI output when printing a breakpoint with multiple locations
is not conformant to the MI specification:
bkpt={number="1", ...},{number="1.1", ...},{number="1.2", ...}
This patch fixes this issue by moving the locations to a list inside the
first tuple:
bkpt={number="1", ... , locations=[{number="1.1", ...}, ...]}
2013-01-28 Mircea Gherzan <mircea.gherzan@intel.com>
gdb:
* breakpoint.c (print_one_breakpoint): Use a list of breakpoint
locations that adheres to the MI specification.
Signed-off-by: Mircea Gherzan <mircea.gherzan@intel.com>
---
gdb/breakpoint.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index fb57a57..67da346 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -6213,7 +6213,6 @@ print_one_breakpoint (struct breakpoint *b,
bkpt_chain = make_cleanup_ui_out_tuple_begin_end (uiout, "bkpt");
print_one_breakpoint_location (b, NULL, 0, last_loc, allflag);
- do_cleanups (bkpt_chain);
/* If this breakpoint has custom print function,
it's already printed. Otherwise, print individual
@@ -6232,8 +6231,11 @@ print_one_breakpoint (struct breakpoint *b,
&& (b->loc->next || !b->loc->enabled))
{
struct bp_location *loc;
+ struct cleanup *loc_list;
int n = 1;
+ loc_list = make_cleanup_ui_out_list_begin_end (uiout, "locations");
+
for (loc = b->loc; loc; loc = loc->next, ++n)
{
struct cleanup *inner2 =
@@ -6241,8 +6243,12 @@ print_one_breakpoint (struct breakpoint *b,
print_one_breakpoint_location (b, loc, n, last_loc, allflag);
do_cleanups (inner2);
}
+
+ do_cleanups (loc_list);
}
}
+
+ do_cleanups (bkpt_chain);
}
static int
--
1.7.1