From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31804 invoked by alias); 24 Jan 2007 01:13:50 -0000 Received: (qmail 31795 invoked by uid 22791); 24 Jan 2007 01:13:49 -0000 X-Spam-Check-By: sourceware.org Received: from nile.gnat.com (HELO nile.gnat.com) (205.232.38.5) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 24 Jan 2007 01:13:42 +0000 Received: from localhost (localhost [127.0.0.1]) by filtered-nile.gnat.com (Postfix) with ESMTP id 4670E48CF20 for ; Tue, 23 Jan 2007 20:11:57 -0500 (EST) Received: from nile.gnat.com ([127.0.0.1]) by localhost (nile.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 02905-01-9 for ; Tue, 23 Jan 2007 20:11:57 -0500 (EST) Received: from takamaka.act-europe.fr (joel.gnat.com [205.232.38.116]) by nile.gnat.com (Postfix) with ESMTP id 1735448CF1B for ; Tue, 23 Jan 2007 20:11:57 -0500 (EST) Received: by takamaka.act-europe.fr (Postfix, from userid 1000) id 2BFF334C099; Wed, 24 Jan 2007 05:12:55 +0400 (RET) Date: Wed, 24 Jan 2007 01:13:00 -0000 From: Joel Brobecker To: gdb-patches@sourceware.org Subject: [RFA] new command: maintenance print target-stack Message-ID: <20070124011254.GG4667@adacore.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MfFXiAuoTsnnDAfZ" Content-Disposition: inline User-Agent: Mutt/1.4.2.2i 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: 2007-01/txt/msg00489.txt.bz2 --MfFXiAuoTsnnDAfZ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 1292 Hello, I proposed the addition of a new maintenance command a few months ago: http://www.sourceware.org/ml/gdb-patches/2006-10/msg00204.html Only a couple of people answered, but both were positive. So I now more formally propose the inclusion of this patch. |While working to "auto-solib-add", I found that I was very frequently |in need to dumping the current target stack (I just need the names), |to see if the multi-thread layer has been pushed or not. So I |implemented a new "maintenance" command, hoping that others might |find it useful. | | (gdb) maintenance print target-stack | The current target stack is: | - multi-thread (multi-threaded child process.) | - child (Unix child process) | - exec (Local exec file) | - None (None) | |Opinions? Eventually, we might want to actually dump more |information if that's useful to others, but that's a start. | 2007-01-24 Joel Brobecker * target.c (maintenance_print_target_stack): New function. (initialize_targets): Add new "maintenance print target-stack" command. Tested on x86-linux just to make sure, no regression. I will of course provide documentation for this if the idea is accepted. OK to apply? Thanks, -- Joel --MfFXiAuoTsnnDAfZ Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="target.c.diff" Content-length: 1188 Index: target.c =================================================================== RCS file: /cvs/src/src/gdb/target.c,v retrieving revision 1.133 diff -u -p -r1.133 target.c --- target.c 23 Jan 2007 13:03:20 -0000 1.133 +++ target.c 24 Jan 2007 01:10:57 -0000 @@ -2769,6 +2769,21 @@ do_monitor_command (char *cmd, target_rcmd (cmd, gdb_stdtarg); } +/* Print the name of each layers of our target stack. */ + +static void +maintenance_print_target_stack (char *cmd, int from_tty) +{ + struct target_ops *t; + + printf_filtered (_("The current target stack is:\n")); + + for (t = target_stack; t != NULL; t = t->beneath) + { + printf_filtered (" - %s (%s)\n", t->to_shortname, t->to_longname); + } +} + void initialize_targets (void) { @@ -2802,5 +2817,9 @@ result in significant performance improv add_com ("monitor", class_obscure, do_monitor_command, _("Send a command to the remote monitor (remote targets only).")); + add_cmd ("target-stack", class_maintenance, maintenance_print_target_stack, + _("Print the name of each layer of the internal target stack."), + &maintenanceprintlist); + target_dcache = dcache_init (); } --MfFXiAuoTsnnDAfZ--