From: Andrew STUBBS <andrew.stubbs@st.com>
To: GDB Patches <gdb-patches@sourceware.org>
Subject: [PATCH] Don't give spurious warnings when using thread specific breakpoints
Date: Wed, 11 Oct 2006 13:44:00 -0000 [thread overview]
Message-ID: <452CF534.4060209@st.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 501 bytes --]
When creating a thread specific breakpoint GDB will warn about other
breakpoints set on the same address even when they are specific to
another thread.
The attached patch prevents it warning about breakpoints from other
threads. When a non-thread specific breakpoint is created, or already
exists, the warning is still given, but is annotated with the thread
information. When not using thread specific breakpoints the behaviour
should remain unaltered.
:ADDPATCH breakpoint.c:
Andrew Stubbs
[-- Attachment #2: threadbreak.patch --]
[-- Type: text/plain, Size: 2742 bytes --]
2006-10-11 Andrew Stubbs <andrew.stubbs@st.com>
* breakpoint.c (describe_other_breakpoints): Add thread parameter.
Only display breakpoints set on the same thread or globally.
Annotate display with thread number where appropriate.
Index: src/gdb/breakpoint.c
===================================================================
--- src.orig/gdb/breakpoint.c 2006-10-11 14:23:37.000000000 +0100
+++ src/gdb/breakpoint.c 2006-10-11 14:29:25.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 thread);
static void breakpoints_info (char *, int);
@@ -3781,13 +3781,14 @@ 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;
ALL_BREAKPOINTS (b)
- if (b->loc->address == pc) /* address match / overlay match */
+ if (b->loc->address == pc /* address match / overlay match */
+ && (thread == -1 || b->thread == -1 || b->thread == thread))
if (!b->pending && (!overlay_debugging || b->loc->section == section))
others++;
if (others > 0)
@@ -3797,12 +3798,17 @@ describe_other_breakpoints (CORE_ADDR pc
else /* if (others == ???) */
printf_filtered (_("Note: breakpoints "));
ALL_BREAKPOINTS (b)
- if (b->loc->address == pc) /* address match / overlay match */
+ if (b->loc->address == pc /* address match / overlay match */
+ && (thread == -1 || b->thread == -1 || b->thread == thread))
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)
@@ -4959,7 +4965,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);
next reply other threads:[~2006-10-11 13:44 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-11 13:44 Andrew STUBBS [this message]
2006-10-11 13:55 ` Daniel Jacobowitz
2006-10-11 14:46 ` Andrew STUBBS
2006-10-11 20:45 ` Daniel Jacobowitz
2006-10-11 22:12 ` Mark Kettenis
2006-10-11 22:14 ` Joel Brobecker
2006-10-18 12:01 ` Andrew STUBBS
2006-10-18 14:14 ` Daniel Jacobowitz
2006-10-18 15:12 ` Andrew STUBBS
2006-10-18 19:47 ` Eli Zaretskii
2006-10-18 20:21 ` Andreas Schwab
2006-10-19 4:17 ` Eli Zaretskii
2006-10-19 9:47 ` Andrew STUBBS
2006-10-20 6:10 ` Eli Zaretskii
2006-10-20 14:29 ` Daniel Jacobowitz
2006-10-20 17:42 ` Eli Zaretskii
2006-10-20 17:47 ` Daniel Jacobowitz
2006-10-20 18:03 ` Eli Zaretskii
2006-10-20 18:07 ` Daniel Jacobowitz
2006-10-20 18:11 ` Eli Zaretskii
2006-10-19 13:28 ` Daniel Jacobowitz
2006-10-19 15:59 ` Andrew STUBBS
2006-10-18 19:22 ` Eli Zaretskii
2006-10-11 22:06 ` Mark Kettenis
2006-10-12 10:45 ` Andrew STUBBS
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=452CF534.4060209@st.com \
--to=andrew.stubbs@st.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox