From: Daniel Jacobowitz <drow@mvista.com>
To: Andrew Cagney <cagney@gnu.org>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [RFC]: remove inconsistency in printcmd.c: print_scalar_formatted
Date: Tue, 20 Jan 2004 05:48:00 -0000 [thread overview]
Message-ID: <20040120054836.GA23548@nevyn.them.org> (raw)
In-Reply-To: <400C8CC0.3040706@gnu.org>
On Mon, Jan 19, 2004 at 09:04:48PM -0500, Andrew Cagney wrote:
> >(gdb) print/x doublevar
> >>>$1 = 0xc000000000000000
> >>>(gdb) print/i doublevar
> >>>???? [no preference really]
> >
> >>
> >>No. That would be wrong. print/<format> prints the value (not the
> >>implementation) using the specified format. Being able to examine the
> >>underlying implementation in various formats is more of an "examine"
> >>command.
> >
> >
> >Andrew, please explain to us all how you can respond to "I think this
> >would be a better, different-than-the-current behavior" with "No, that
> >would be wrong".
>
> "us all"?
Yes, since "That would be wrong" is a pretty sweeping policy statement
for GDB. It indicates the existance of an absolute standard that we
need to adhere to. If there is one, I've missed it, please add it to
the manual.
> "print" displays the value, not the underlying representation, using
> normal language rules. Consider:
> int i = 1.0;
> extern foo (int i);
> foo (1.0:
> which don't leave something like 0xc0000000 in i. On the other hand
So if you use no format characters, you'll get the expected result. I
think at least one word is missing from the above example...
> "examine" lets you display the underlying [memory] representation in
> various forms.
>
> The problem here is not print/f, but rather that there isn't way to
> examine the underlying representation of non-memory values (most often
> registers) this leaves people attempting:
> x/x $fp0
> and then:
> p/x $fp0
> :-(
My point is that we can _change_ the behavior of print. I think that
it is reasonable for the process to be something like this:
print /format expression
Evaluate expression
Expression has a type
Examine the value of that type according to /format
[interpret its bits as a double, or as hex, or whatever...]
This isn't the first time this has come up, Jim (?) made a similar
suggestion some time ago for the case of ObjC. I think that I
disagreed with it at the time, but I've got a history of being
inconsistent.
Think about it. What use do these have:
p/f int_var
p/x double_var
None that I can see. p (double) int_var is obviously <int_var>.0 in C,
and p/x (int) double_var is obviously 0x<truncate(double_var)>, but the
format specifiers don't add value. Here's some value they could add.
Now, for ints vs. pointers it may be a little messier.
This might even let me solve a long-standing complaint. Given $r1 =
0x62636566, I'd love to have a way to make gdb print "bcef". Or "fceb"
or whatever else. p/s $r1? p/x 0x62636566? Examine does an implicit
dereference and print doesn't, so this seems like a logical use of
printf.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
next prev parent reply other threads:[~2004-01-20 5:48 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-12 20:36 Jeff Johnston
2003-12-12 22:17 ` Kevin Buettner
2003-12-12 23:05 ` Daniel Jacobowitz
2003-12-13 0:55 ` J. Johnston
2004-01-19 22:23 ` J. Johnston
2004-01-19 22:57 ` Andrew Cagney
2004-01-19 23:18 ` Daniel Jacobowitz
2004-01-19 23:27 ` Kevin Buettner
2004-01-20 0:41 ` Andrew Cagney
2004-01-20 1:22 ` Daniel Jacobowitz
[not found] ` <400C8CC0.3040706@gnu.org>
2004-01-20 5:48 ` Daniel Jacobowitz [this message]
2004-01-20 6:55 ` Eli Zaretskii
2004-01-20 14:52 ` Daniel Jacobowitz
2004-01-20 19:15 ` Eli Zaretskii
2004-01-20 19:33 ` Daniel Jacobowitz
2004-01-20 20:32 ` Eli Zaretskii
2004-01-20 16:50 ` Andrew Cagney
2004-01-20 19:10 ` Eli Zaretskii
2004-01-20 21:29 ` Andrew Cagney
2004-02-19 22:53 ` Jeff Johnston
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040120054836.GA23548@nevyn.them.org \
--to=drow@mvista.com \
--cc=cagney@gnu.org \
--cc=gdb-patches@sources.redhat.com \
/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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox