diff options
author | Tom Tromey <tromey@adacore.com> | 2022-02-17 13:43:59 -0700 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2022-03-10 12:19:08 -0700 |
commit | 56262a931b7ca8ee3ec9104bc7e9e0b40cf3d64e (patch) | |
tree | 06824fe8a8a0723d02b917c5f9aec87d17e73d6e /gdb/NEWS | |
parent | fdda16e1fa9637f9b6ca846eebe881cd2901d75a (diff) | |
download | gdb-56262a931b7ca8ee3ec9104bc7e9e0b40cf3d64e.zip gdb-56262a931b7ca8ee3ec9104bc7e9e0b40cf3d64e.tar.gz gdb-56262a931b7ca8ee3ec9104bc7e9e0b40cf3d64e.tar.bz2 |
Change how "print/x" displays floating-point value
Currently, "print/x" will display a floating-point value by first
casting it to an integer type. This yields weird results like:
(gdb) print/x 1.5
$1 = 0x1
This has confused users multiple times -- see PR gdb/16242, where
there are several dups. I've also seen some confusion from this
internally at AdaCore.
The manual says:
'x'
Regard the bits of the value as an integer, and print the integer
in hexadecimal.
... which seems more useful. So, perhaps what happened is that this
was incorrectly implemented (or maybe correctly implemented and then
regressed, as there don't seem to be any tests).
This patch fixes the bug.
There was a previous discussion where we agreed to preserve the old
behavior:
https://sourceware.org/legacy-ml/gdb-patches/2017-06/msg00314.html
However, I think it makes more sense to follow the manual.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=16242
Diffstat (limited to 'gdb/NEWS')
-rw-r--r-- | gdb/NEWS | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -125,6 +125,12 @@ show ada source-charset * Changed commands +print + Printing of floating-point values with base-modifying formats like + /x has been changed to display the underlying bytes of the value in + the desired base. This was GDB's documented behavior, but was never + implemented correctly. + maint packet This command can now print a reply, if the reply includes non-printable characters. Any non-printable characters are printed |