Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Joel Brobecker <brobecker@adacore.com>
To: gdb-patches@sourceware.org
Cc: Joel Brobecker <brobecker@adacore.com>
Subject: [PATCH 02/18] New command_post observer
Date: Thu, 24 Feb 2011 17:50:00 -0000	[thread overview]
Message-ID: <1298569763-18784-3-git-send-email-brobecker@adacore.com> (raw)
In-Reply-To: <1298569763-18784-1-git-send-email-brobecker@adacore.com>

Just as the current language, or current inferior, or current thread,
affect some of the commands being issued by the user to the debugger,
with multi-partition systems, we now have a current partition (formerly
known as a Protection Domain, or PD).

What we are trying to do is to keep the user informed of the current
PD (which is identified by either PD ID or name, but we like to print
both).

The problem is that we cannot just print a message everytime the PD
gets switched, because many commands result in a temporary switch of
partition.  For instance, info threads will need to switch to the
associated PDs in order to get the PC and associated symbolic info.
We don't want to write the notification for each switch. However, we
do want to print that notification if we just hit a breakpoint for
some code living in a different partition...

The way we solved this is by remembering the PD ID before we issued
the last command.  At the end of a command execution, if the PD ID
changed, then we write a notification...

This patch introduces an observer (command_post) that gets triggered
at the end of a command execution...

gdb/ChangeLog:

        * doc/observer.texi (command_post): New observer.
        * top.c: #include "observer.h".
        (execute_command): Call observer_notify_command_post.
---
 gdb/doc/observer.texi |    4 ++++
 gdb/top.c             |    4 ++++
 2 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/gdb/doc/observer.texi b/gdb/doc/observer.texi
index d16c865..f136113 100644
--- a/gdb/doc/observer.texi
+++ b/gdb/doc/observer.texi
@@ -132,6 +132,10 @@ Called with @var{objfile} equal to @code{NULL} to indicate
 previously loaded symbol table data has now been invalidated.
 @end deftypefun
 
+@deftypefun void command_post (void)
+The debugger just finished executing a command.
+@end deftypefun
+
 @deftypefun void new_thread (struct thread_info *@var{t})
 The thread specified by @var{t} has been created.
 @end deftypefun
diff --git a/gdb/top.c b/gdb/top.c
index df2b163..a8d2e5a 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -64,6 +64,7 @@
 #include <ctype.h>
 #include "ui-out.h"
 #include "cli-out.h"
+#include "observer.h"
 
 /* Default command line prompt.  This is overriden in some configs.  */
 
@@ -462,6 +463,9 @@ execute_command (char *p, int from_tty)
 	  warned = 1;
 	}
     }
+
+  /* Emit the "command_post" notification.  */
+  observer_notify_command_post ();
 }
 
 /* Run execute_command for P and FROM_TTY.  Capture its output into the
-- 
1.7.0.4


  parent reply	other threads:[~2011-02-24 17:49 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-24 17:49 Add support for VxWorks 5.x, 6.x and 653 Joel Brobecker
2011-02-24 17:49 ` [PATCH 01/18] Some ada-lang/ada-tasks routines needed by the VxWorks target Joel Brobecker
2011-02-24 17:50 ` Joel Brobecker [this message]
2011-02-24 18:58   ` [PATCH 02/18] New command_post observer Tom Tromey
2011-02-24 17:50 ` [PATCH 04/18] add new "unload" command (symetry of existing "load" command) Joel Brobecker
2011-02-24 19:22   ` Eli Zaretskii
2011-02-24 17:50 ` [PATCH 03/18] New general purpose routines in utils.c Joel Brobecker
2011-02-24 19:06   ` Tom Tromey
2011-02-24 17:51 ` [PATCH 05/18] new struct bp_target_info target_private_data field Joel Brobecker
2011-02-24 17:54 ` [PATCH 08/18] Add options to control Vxworks related settings Joel Brobecker
2011-02-24 17:54 ` [PATCH 09/18] VxWorks breakpoint-handling module Joel Brobecker
2011-02-24 17:54 ` [PATCH 06/18] New module remote-wtx-utils Joel Brobecker
2011-02-24 19:26   ` Tom Tromey
2011-02-24 17:55 ` [PATCH 10/18] "multi-tasks-mode" support Joel Brobecker
2011-02-24 17:56 ` [PATCH 11/18] Add partition support Joel Brobecker
2011-02-25 16:17   ` Tom Tromey
2011-02-24 17:56 ` [PATCH 07/18] remote-wtxapi: The WTX API abstraction layer Joel Brobecker
2011-02-24 19:44   ` Tom Tromey
2011-02-24 17:57 ` [PATCH 14/18] WTX-TCL support module Joel Brobecker
2011-02-25 15:59   ` Tom Tromey
2011-02-25 18:58     ` Joel Brobecker
2011-02-28 15:37       ` Tom Tromey
2011-02-24 17:57 ` [PATCH 12/18] remote-wtx-hw: register fetch/store support Joel Brobecker
2011-02-24 17:57 ` [PATCH 13/18] Add new "wtx" target Joel Brobecker
2011-02-25 16:15   ` Tom Tromey
2011-02-25 17:38     ` Joel Brobecker
2011-02-24 17:58 ` [PATCH 15/18] Add support for VxWorks 6 Joel Brobecker
2011-02-24 17:59 ` [PATCH 16/18] Add tdep files for x86 and powerpc Joel Brobecker
2011-02-24 18:58   ` Mark Kettenis
2011-02-25  8:29     ` Joel Brobecker
2011-02-24 17:59 ` [PATCH 17/18] Configury and Makefile updates for VxWorks Joel Brobecker
2011-02-24 18:04 ` [PATCH 18/18] document the new VxWorks port Joel Brobecker
2011-02-24 20:27   ` Eli Zaretskii
2011-02-25 11:12     ` Jerome Guitton
2011-02-25 11:27       ` Eli Zaretskii
2011-02-25 11:38         ` Jerome Guitton
2011-02-25 11:38           ` Joel Brobecker
2011-02-25 12:08             ` Eli Zaretskii
2011-02-25 13:26               ` Jerome Guitton
2011-02-25 11:44           ` Eli Zaretskii
2011-02-25 11:49             ` Joel Brobecker
2011-02-25 11:55               ` Jerome Guitton
2011-02-25 11:56                 ` Joel Brobecker
2011-02-25 12:01                   ` Pedro Alves
2011-02-25 14:21                     ` Joel Brobecker
2011-02-25 14:44                       ` Pedro Alves
2011-02-25 15:15                         ` Joel Brobecker
2011-02-25 12:05                   ` Jerome Guitton
2011-02-25 12:15                     ` Eli Zaretskii
2011-02-25 12:56                       ` Joel Brobecker
2011-02-25 13:20                         ` Eli Zaretskii
2011-02-25 14:11                           ` Jerome Guitton
2011-03-03 12:16     ` Joel Brobecker
2011-03-03 13:44       ` Eli Zaretskii

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=1298569763-18784-3-git-send-email-brobecker@adacore.com \
    --to=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