From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.bugs Subject: bug#61453: It is annoying to have to type 'print foo' before each .gdbinit command. Date: Sun, 12 Feb 2023 14:42:38 +0000 Message-ID: References: <83mt5jghej.fsf@gnu.org> <83k00ngeu8.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4955"; mail-complaints-to="usenet@ciao.gmane.io" Cc: acm@muc.de, 61453@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Feb 12 15:43:29 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pRDZg-00019p-J9 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 12 Feb 2023 15:43:28 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pRDZN-0002ik-26; Sun, 12 Feb 2023 09:43:09 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pRDZG-0002iS-TJ for bug-gnu-emacs@gnu.org; Sun, 12 Feb 2023 09:43:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pRDZG-0000TI-66 for bug-gnu-emacs@gnu.org; Sun, 12 Feb 2023 09:43:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pRDZG-00068y-17 for bug-gnu-emacs@gnu.org; Sun, 12 Feb 2023 09:43:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Alan Mackenzie Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 12 Feb 2023 14:43:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61453 X-GNU-PR-Package: emacs Original-Received: via spool by 61453-submit@debbugs.gnu.org id=B61453.167621296823596 (code B ref 61453); Sun, 12 Feb 2023 14:43:01 +0000 Original-Received: (at 61453) by debbugs.gnu.org; 12 Feb 2023 14:42:48 +0000 Original-Received: from localhost ([127.0.0.1]:44442 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pRDZ2-00068V-2L for submit@debbugs.gnu.org; Sun, 12 Feb 2023 09:42:48 -0500 Original-Received: from mx3.muc.de ([193.149.48.5]:26853) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pRDYz-00068H-Pb for 61453@debbugs.gnu.org; Sun, 12 Feb 2023 09:42:46 -0500 Original-Received: (qmail 21101 invoked by uid 3782); 12 Feb 2023 15:42:39 +0100 Original-Received: from acm.muc.de (pd953a525.dip0.t-ipconnect.de [217.83.165.37]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Sun, 12 Feb 2023 15:42:39 +0100 Original-Received: (qmail 9685 invoked by uid 1000); 12 Feb 2023 14:42:38 -0000 Content-Disposition: inline In-Reply-To: <83k00ngeu8.fsf@gnu.org> X-Submission-Agent: TMDA/1.3.x (Ph3nix) X-Primary-Address: acm@muc.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:255417 Archived-At: Hello, Eli. On Sun, Feb 12, 2023 at 16:04:15 +0200, Eli Zaretskii wrote: > > Date: Sun, 12 Feb 2023 13:34:36 +0000 > > Cc: 61453@debbugs.gnu.org > > From: Alan Mackenzie > > > What's wrong with the existing "pp" command? I think it covers all > > > your needs, and doesn't need any changes to existing xFOO commands. > > The pp comand does nothing on my setup except for scrolling the gdb > > window up one line. Its help text says "Works only when an inferior > > emacs is executing.". I normally start the target Emacs on a separate > > Linux console, then attach it to my gdb session with the attach command. > > I don't really know what "an inferior emacs" means, though I'm sure I > > could find out if I read etc/DEBUG more carefully. I've looked at the pp command, and I think it is only capable of displaying objects from within the Lisp environment; it won't display Lisp_Object's in the C environment. If that's the case, it wouldn't cover all my needs. > You do need to have a running Emacs for "pp", but if you attach to a > running Emacs, you already have that. I guess the problem is that the > output of "pp" goes to the same display as the one Emacs uses, ..... I have an Emacs running gdb, and a seperate "target" Emacs, the one being debugged. I'm not sure which one you mean as "... the one Emacs uses". > .... since you are running a -nw session, right? Maybe you should try > "set new-console 1", or start GDB on a separate console (if that is > possible with the console you are using). No, I'm running on Linux consoles, without the -nw. It might be possible to start GDB in a third console, but it would be awkward. > > So, I still think my patch would be a good idea. > But does it really work? You use $arg0, but that means you cannot > have an arbitrary expression as an argument, and have to be very > cautious with blanks and other delimiters, because GDB could decide > that $arg0 is just part of the argument. Thanks, that's a good point I wasn't aware of. One way out of that would be to test gdb's $argc is exactly 1, and throw an error message if not. Presumably, there will be some way to quote arguments to gdb functions, I'll have to read the fine manual a bit more closely. > Observe: > (gdb) define foo > > print $arg0 > > end > (gdb) foo 1 + 2 + 3 > $1 = 1 > But > (gdb) print 1 + 2 + 3 > $2 = 6 > and > (gdb) p Vmost_positive_fixnum - 1 > $1 = 6917529027641081854 > (gdb) xint > $2 = 2305843009213693950 > So the existing commands accept/interpret arbitrary expressions, > whereas your changed commands will not necessarily do so. Which means > they can silently produce incorrect results, and the user will be none > the wiser. As I said, I could test $argc == 1. Most of the time, users are not going to be giving "multi" arguments to the gdb commands, are they? -- Alan Mackenzie (Nuremberg, Germany).