This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH]:annotations [was Re: [patch:MI] Observer for thread-changed]
- From: Nick Roberts <nickrob at snap dot net dot nz>
- To: Pedro Alves <pedro at codesourcery dot com>, gdb-patches at sourceware dot org, ghost at cs dot msu dot su
- Date: Sat, 17 Jan 2009 13:09:30 +1300
- Subject: [PATCH]:annotations [was Re: [patch:MI] Observer for thread-changed]
- References: <18509.7945.19078.399646@kahikatea.snap.net.nz> <200806100104.28694.pedro@codesourcery.com> <18509.57602.879804.675918@kahikatea.snap.net.nz> <200806100346.33522.pedro@codesourcery.com> <18509.61742.680365.176465@kahikatea.snap.net.nz>
On 10 Jun 2008 15:12:46 +1200 Nick Roberts writes:
> > > If it goes at the end of do_captured_thread_select then I guess that
> > > will be after any exceptions but, to me, putting the logic in
> > > gdb_thread_select makes it clearer that the thread only gets reported
> > > when there is no exception.
> >
> > I think it's clearer to put the observer close to where to switch is
> > performed. Plus, if/when we remove libgdb and the wrapper, we have again
> > to move the observer call... Not the end of the world, but might as well
> > put it in the right place now, IMHO. Oh well, opinions :-)
>
> Seems reasonable. I'll do that.
Ping.
> --
> Nick http://www.inet.net.nz/~nickrob
>
>
> --- thread.c 09 Jun 2008 21:06:46 +1200 1.71
> +++ thread.c 10 Jun 2008 15:11:13 +1200
> @@ -738,7 +738,6 @@ thread_command (char *tidstr, int from_t
> return;
> }
>
> - annotate_thread_changed ();
> gdb_thread_select (uiout, tidstr, NULL);
> }
>
> @@ -770,6 +769,8 @@ do_captured_thread_select (struct ui_out
> error (_("Thread ID %d has terminated."), num);
>
> switch_to_thread (tp->ptid);
> + observer_notify_thread_changed ();
> + annotate_thread_changed ();
>
> ui_out_text (uiout, "[Switching to thread ");
> ui_out_field_int (uiout, "new-thread-id", pid_to_thread_id (inferior_ptid));
>
Vladimir has created his own notifications for thread changes now, so that
part is no longer relevant but moving the call to annotate_thread_changed
still is.
--
Nick http://www.inet.net.nz/~nickrob
2009-01-17 Nick Roberts <nickrob@snap.net.nz>
* thread.c (thread_command): Don't print an annotation if the
thread change generate an exception.
Index: thread.c
===================================================================
RCS file: /cvs/src/src/gdb/thread.c,v
retrieving revision 1.99
diff -p -u -p -r1.99 thread.c
--- thread.c 3 Jan 2009 05:57:53 -0000 1.99
+++ thread.c 16 Jan 2009 23:58:47 -0000
@@ -1045,7 +1045,6 @@ thread_command (char *tidstr, int from_t
return;
}
- annotate_thread_changed ();
gdb_thread_select (uiout, tidstr, NULL);
}
@@ -1078,6 +1077,8 @@ do_captured_thread_select (struct ui_out
switch_to_thread (tp->ptid);
+ annotate_thread_changed ();
+
ui_out_text (uiout, "[Switching to thread ");
ui_out_field_int (uiout, "new-thread-id", pid_to_thread_id (inferior_ptid));
ui_out_text (uiout, " (");