From: Tom Tromey <tromey@redhat.com>
To: Joel Brobecker <brobecker@adacore.com>
Cc: gdb-patches@sourceware.org
Subject: Re: FYI: add some breakpoint setter methods
Date: Mon, 31 Jan 2011 15:12:00 -0000 [thread overview]
Message-ID: <m3k4hlxg4y.fsf@fleche.redhat.com> (raw)
In-Reply-To: <20110131021033.GC2384@adacore.com> (Joel Brobecker's message of "Mon, 31 Jan 2011 06:10:33 +0400")
>>>>> "Joel" == Joel Brobecker <brobecker@adacore.com> writes:
Tom> As an aside, it seems to me that the breakpoint observers should
Tom> probably take a 'struct breakpoint *' as an argument, rather than a
Tom> breakpoint number.
Joel> Seems like a good idea.
It turns out that Volodya also wrote a patch to do async breakpoint
notifications. I think he is going to post his soon; his includes this
observer change.
[...]
Joel> Missing empty line after variable declaration (it's happening multiple
Joel> times throughout the patch).
Thanks. Here is what I am checking in.
Tom
2011-01-31 Tom Tromey <tromey@redhat.com>
* infcmd.c (finish_backward): Use breakpoint_set_silent.
* python/py-breakpoint.c (bppy_set_silent): Use
breakpoint_set_silent.
(bppy_set_thread): Use breakpoint_set_thread.
(bppy_set_task): Use breakpoint_set_task.
* breakpoint.h (breakpoint_set_silent, breakpoint_set_thread)
(breakpoint_set_task): Declare.
(make_breakpoint_silent): Remove.
* breakpoint.c (breakpoint_set_silent): New function.
(breakpoint_set_thread): Likewise.
(breakpoint_set_task): Likewise.
(make_breakpoint_silent): Remove.
Index: breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.c,v
retrieving revision 1.530
diff -u -r1.530 breakpoint.c
--- breakpoint.c 31 Jan 2011 15:07:49 -0000 1.530
+++ breakpoint.c 31 Jan 2011 15:10:42 -0000
@@ -940,6 +940,46 @@
observer_notify_breakpoint_modified (b->number);
}
+/* Set the internal `silent' flag on the breakpoint. Note that this
+ is not the same as the "silent" that may appear in the breakpoint's
+ commands. */
+
+void
+breakpoint_set_silent (struct breakpoint *b, int silent)
+{
+ int old_silent = b->silent;
+
+ b->silent = silent;
+ if (old_silent != silent)
+ observer_notify_breakpoint_modified (b->number);
+}
+
+/* Set the thread for this breakpoint. If THREAD is -1, make the
+ breakpoint work for any thread. */
+
+void
+breakpoint_set_thread (struct breakpoint *b, int thread)
+{
+ int old_thread = b->thread;
+
+ b->thread = thread;
+ if (old_thread != thread)
+ observer_notify_breakpoint_modified (b->number);
+}
+
+/* Set the task for this breakpoint. If TASK is 0, make the
+ breakpoint work for any task. */
+
+void
+breakpoint_set_task (struct breakpoint *b, int task)
+{
+ int old_task = b->task;
+
+ b->task = task;
+ if (old_task != task)
+ observer_notify_breakpoint_modified (b->number);
+}
+
void
check_tracepoint_command (char *line, void *closure)
{
@@ -10738,13 +10778,6 @@
error (_("No breakpoint number %d."), bptnum);
}
-void
-make_breakpoint_silent (struct breakpoint *b)
-{
- /* Silence the breakpoint. */
- b->silent = 1;
-}
-
/* Command to set ignore-count of breakpoint N to COUNT. */
static void
Index: breakpoint.h
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.h,v
retrieving revision 1.133
diff -u -r1.133 breakpoint.h
--- breakpoint.h 31 Jan 2011 15:07:49 -0000 1.133
+++ breakpoint.h 31 Jan 2011 15:10:42 -0000
@@ -1063,6 +1063,12 @@
extern void breakpoint_set_commands (struct breakpoint *b,
struct command_line *commands);
+extern void breakpoint_set_silent (struct breakpoint *b, int silent);
+
+extern void breakpoint_set_thread (struct breakpoint *b, int thread);
+
+extern void breakpoint_set_task (struct breakpoint *b, int task);
+
/* Clear the "inserted" flag in all breakpoints. */
extern void mark_breakpoints_out (void);
@@ -1140,9 +1146,6 @@
Returns 0 if not, greater than 0 if we are. */
extern int catching_syscall_number (int syscall_number);
-/* Tell a breakpoint to be quiet. */
-extern void make_breakpoint_silent (struct breakpoint *);
-
/* Return a tracepoint with the given number if found. */
extern struct breakpoint *get_tracepoint (int num);
Index: infcmd.c
===================================================================
RCS file: /cvs/src/src/gdb/infcmd.c,v
retrieving revision 1.276
diff -u -r1.276 infcmd.c
--- infcmd.c 25 Jan 2011 17:58:59 -0000 1.276
+++ infcmd.c 31 Jan 2011 15:10:42 -0000
@@ -1545,7 +1545,7 @@
bp_breakpoint);
/* Tell the breakpoint to keep quiet. We won't be done
until we've done another reverse single-step. */
- make_breakpoint_silent (breakpoint);
+ breakpoint_set_silent (breakpoint, 1);
old_chain = make_cleanup_delete_breakpoint (breakpoint);
proceed ((CORE_ADDR) -1, TARGET_SIGNAL_DEFAULT, 0);
/* We will be stopped when proceed returns. */
Index: python/py-breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/python/py-breakpoint.c,v
retrieving revision 1.12
diff -u -r1.12 py-breakpoint.c
--- python/py-breakpoint.c 26 Jan 2011 20:53:45 -0000 1.12
+++ python/py-breakpoint.c 31 Jan 2011 15:10:42 -0000
@@ -201,7 +201,7 @@
if (cmp < 0)
return -1;
else
- self_bp->bp->silent = cmp;
+ breakpoint_set_silent (self_bp->bp, cmp);
return 0;
}
@@ -242,7 +242,7 @@
return -1;
}
- self_bp->bp->thread = id;
+ breakpoint_set_thread (self_bp->bp, id);
return 0;
}
@@ -283,7 +283,7 @@
return -1;
}
- self_bp->bp->task = id;
+ breakpoint_set_task (self_bp->bp, id);
return 0;
}
prev parent reply other threads:[~2011-01-31 15:11 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-28 2:40 Tom Tromey
2011-01-31 2:42 ` Joel Brobecker
2011-01-31 11:04 ` Vladimir Prus
2011-01-31 15:12 ` Tom Tromey [this message]
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=m3k4hlxg4y.fsf@fleche.redhat.com \
--to=tromey@redhat.com \
--cc=brobecker@adacore.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).