Subject: bug#61453: It is annoying to have to type 'print foo' before each .gdbinit command.

From: Eli Zaretskii <[email-masked]>
Date: Sun, 12 Feb 2023 16:49:13 +0200

> Date: Sun, 12 Feb 2023 14:42:38 +0000
> Cc: [email-masked], [email-masked]
> From: Alan Mackenzie <[email-masked]>
> 
> 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.

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

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

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

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