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.