unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: Eli Zaretskii <eliz@gnu.org>
Cc: acm@muc.de, 61453@debbugs.gnu.org
Subject: bug#61453: It is annoying to have to type 'print foo' before each .gdbinit command.
Date: Sun, 12 Feb 2023 16:14:49 +0000	[thread overview]
Message-ID: <Y+kQeW2DyHy8g6PZ@ACM> (raw)
In-Reply-To: <83fsbbgcra.fsf@gnu.org>

Hello, Eli.

On Sun, Feb 12, 2023 at 16:49:13 +0200, Eli Zaretskii wrote:
> > Date: Sun, 12 Feb 2023 14:42:38 +0000
> > Cc: 61453@debbugs.gnu.org, acm@muc.de
> > From: Alan Mackenzie <acm@muc.de>

> > 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.

> Nonsense, I use it every day when debugging the C code.  The GDB
> command "pp" can display any Lisp object defined by a C expression.

OK, thanks!  I see now that pp was producing output, but like you say, on
the target Emacs (in an untidy way), not on the debugging Emacs.

> > > 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".

> I mean the Emacs you debug.

Thanks.

> > > 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.

> How will this help?  You will ask people to deliberately remove any
> delimiters from what they type?  That's a terrible annoyance.  It
> means, for example, that you cannot simply copy/paste code fragments.

It seems that the same problem exists with pp.  It transfers $arg0 to the
target Emacs and ignores any further arguments.  It seems the
overwhelming bulk of the use of all these commands is for just a single
argument.  It is certainly so for the bulk of the commands I've amended.

I'm not removing any facilities here, so people can continue to use print
followed by, say, xpr with no arguments, when that's appropriate.  Most
of the time, xpr <arg> will work just fine.

> > Presumably, there will be some way to quote arguments to gdb functions,
> > I'll have to read the fine manual a bit more closely.

I've experimented with "if $argc > 1 printf "Error message.\n", which
seems to work OK.

> Even if there are such quoting methods (I'm not sure), using them will
> be a significant annoyance.

Having to use print to print out something nobody's interested in, which
takes up two lines in the gdb window, is a significant annoyance.
Otherwise I wouldn't have invested several hours in trying to fix it.

-- 
Alan Mackenzie (Nuremberg, Germany).





  reply	other threads:[~2023-02-12 16:14 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-12 13:01 bug#61453: It is annoying to have to type 'print foo' before each .gdbinit command Alan Mackenzie
2023-02-12 13:08 ` Eli Zaretskii
2023-02-12 13:34   ` Alan Mackenzie
2023-02-12 14:04     ` Eli Zaretskii
2023-02-12 14:42       ` Alan Mackenzie
2023-02-12 14:49         ` Eli Zaretskii
2023-02-12 16:14           ` Alan Mackenzie [this message]
2023-02-12 16:37             ` Eli Zaretskii
2023-02-12 18:23               ` Alan Mackenzie
2023-02-12 18:33                 ` Eli Zaretskii
2023-02-12 18:56                   ` Alan Mackenzie
2023-02-12 19:27                     ` 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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y+kQeW2DyHy8g6PZ@ACM \
    --to=acm@muc.de \
    --cc=61453@debbugs.gnu.org \
    --cc=eliz@gnu.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.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).