This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Don't give spurious warnings when using thread specific breakpoints
Daniel Jacobowitz wrote:
This does make a little sense to me. Anyone think there's value in keeping
the note for breakpoints in different threads?
Ok, there seems to be a consensus that the added notes are useful, but
nobody likes the idea of suppressing the message entirely when the
breakpoints do not conflict.
How about the attached patch which includes the one without the other?
I've also taken the opportunity to add _() macros to a few strings.
Andrew
2006-10-18 Andrew Stubbs <andrew.stubbs@st.com>
* breakpoint.c (describe_other_breakpoints): Add thread parameter.
Annotate display with thread number where appropriate.
Add gettext _() macro where it was missing.
(create_breakpoints): Add thread parameter to call to
describe_other_breakpoints.
Index: src/gdb/breakpoint.c
===================================================================
--- src.orig/gdb/breakpoint.c 2006-10-18 12:30:23.000000000 +0100
+++ src/gdb/breakpoint.c 2006-10-18 12:58:17.000000000 +0100
@@ -102,7 +102,7 @@ static void breakpoint_adjustment_warnin
static CORE_ADDR adjust_breakpoint_address (CORE_ADDR bpaddr,
enum bptype bptype);
-static void describe_other_breakpoints (CORE_ADDR, asection *);
+static void describe_other_breakpoints (CORE_ADDR, asection *, int);
static void breakpoints_info (char *, int);
@@ -3782,7 +3782,7 @@ maintenance_info_breakpoints (char *bnum
/* Print a message describing any breakpoints set at PC. */
static void
-describe_other_breakpoints (CORE_ADDR pc, asection *section)
+describe_other_breakpoints (CORE_ADDR pc, asection *section, int thread)
{
int others = 0;
struct breakpoint *b;
@@ -3802,17 +3802,21 @@ describe_other_breakpoints (CORE_ADDR pc
if (!b->pending && (!overlay_debugging || b->loc->section == section))
{
others--;
- printf_filtered ("%d%s%s ",
- b->number,
+ printf_filtered ("%d", b->number);
+ if (b->thread == -1 && thread != -1)
+ printf_filtered (_(" (all threads)"));
+ else if (b->thread != -1)
+ printf_filtered (_(" (thread %d)"), b->thread);
+ printf_filtered ("%s%s ",
((b->enable_state == bp_disabled ||
b->enable_state == bp_shlib_disabled ||
b->enable_state == bp_call_disabled)
- ? " (disabled)"
+ ? _(" (disabled)")
: b->enable_state == bp_permanent
- ? " (permanent)"
+ ? _(" (permanent)")
: ""),
(others > 1) ? ","
- : ((others == 1) ? " and" : ""));
+ : ((others == 1) ? _(" and") : ""));
}
printf_filtered (_("also set at pc "));
deprecated_print_address_numeric (pc, 1, gdb_stdout);
@@ -4960,7 +4964,7 @@ create_breakpoints (struct symtabs_and_l
struct symtab_and_line sal = sals.sals[i];
if (from_tty)
- describe_other_breakpoints (sal.pc, sal.section);
+ describe_other_breakpoints (sal.pc, sal.section, thread);
b = set_raw_breakpoint (sal, type);
set_breakpoint_count (breakpoint_count + 1);