From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1142 invoked by alias); 24 Feb 2011 17:49:54 -0000 Received: (qmail 1129 invoked by uid 22791); 24 Feb 2011 17:49:53 -0000 X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 24 Feb 2011 17:49:49 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id C3A902BADF2; Thu, 24 Feb 2011 12:49:47 -0500 (EST) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id yxqazBsChd03; Thu, 24 Feb 2011 12:49:47 -0500 (EST) Received: from kwai.gnat.com (kwai.gnat.com [205.232.38.4]) by rock.gnat.com (Postfix) with ESMTP id B13112BADEA; Thu, 24 Feb 2011 12:49:47 -0500 (EST) Received: by kwai.gnat.com (Postfix, from userid 4233) id B0AA894677; Thu, 24 Feb 2011 12:49:47 -0500 (EST) From: Joel Brobecker To: gdb-patches@sourceware.org Cc: Joel Brobecker Subject: [PATCH 02/18] New command_post observer Date: Thu, 24 Feb 2011 17:50:00 -0000 Message-Id: <1298569763-18784-3-git-send-email-brobecker@adacore.com> In-Reply-To: <1298569763-18784-1-git-send-email-brobecker@adacore.com> References: <1298569763-18784-1-git-send-email-brobecker@adacore.com> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-02/txt/msg00698.txt.bz2 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 #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