* [commit] Don't allow more than one LWP to have `do_step' flag set at a time
@ 2005-11-11 20:47 Kevin Buettner
0 siblings, 0 replies; only message in thread
From: Kevin Buettner @ 2005-11-11 20:47 UTC (permalink / raw)
To: rda
I've just committed the patch below. As indicated by the comment, the
software singlestep code internal to RDA does not expect to step more
than one thread at a time. (It's rather naive about how it saves the
singlestep breakpoints.) I considered making it more robust, it seems
to me that GDB only expects one thread to be singlestepped at a time.
At the present time, I don't think there's any functionality to be gained
by allowing more than one thread to singlestep simultaneously.
* lwp-pool.c (clear_all_do_step_flags): New function.
(lwp_pool_singlestep_lwp): Use it.
Index: lwp-pool.c
===================================================================
RCS file: /cvs/src/src/rda/unix/lwp-pool.c,v
retrieving revision 1.5
diff -u -p -r1.5 lwp-pool.c
--- lwp-pool.c 10 Nov 2005 21:32:15 -0000 1.5
+++ lwp-pool.c 11 Nov 2005 20:26:23 -0000
@@ -1395,6 +1395,23 @@ lwp_pool_continue_lwp (struct gdbserv *s
}
+/* Clear the `do_step' flags for all LWPs in the hash table. */
+
+static void
+clear_all_do_step_flags (void)
+{
+ int i;
+
+ for (i = 0; i < hash_size; i++)
+ {
+ struct lwp *l = hash[i];
+
+ if (l)
+ l->do_step = 0;
+ }
+}
+
+
int
lwp_pool_singlestep_lwp (struct gdbserv *serv, pid_t lwp, int signal)
{
@@ -1406,6 +1423,12 @@ lwp_pool_singlestep_lwp (struct gdbserv
fprintf (stderr, "lwp_pool_singlestep_lwp (%p, %d, %d)\n",
serv, (int) lwp, signal);
+ /* Neither GDB nor the software singlestep code contained in RDA
+ expect more than one LWP to be stepped simultaneously. Clear the
+ `do_step' flag in all LWPs. The flag for the LWP that we're about
+ to step will be set later on. */
+ clear_all_do_step_flags ();
+
switch (l->state)
{
case lwp_state_uninitialized:
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2005-11-11 20:47 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-11-11 20:47 [commit] Don't allow more than one LWP to have `do_step' flag set at a time Kevin Buettner
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).