mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 00:59:15 +08:00
[gdb] Improve printing of float formats
Currently, on x86_64, a little endian target, I get: ... $ gdb -q -batch -ex "maint print architecture" | grep " = floatformat" gdbarch_dump: bfloat16_format = floatformat_bfloat16_big gdbarch_dump: double_format = floatformat_ieee_double_big gdbarch_dump: float_format = floatformat_ieee_single_big gdbarch_dump: half_format = floatformat_ieee_half_big gdbarch_dump: long_double_format = floatformat_i387_ext ... which suggests big endian. This is due to this bit of code in pformat: ... /* Just print out one of them - this is only for diagnostics. */ return format[0]->name; ... Fix this by using gdbarch_byte_order to pick the appropriate index, such that we have the more accurate: ... gdbarch_dump: bfloat16_format = floatformat_bfloat16_little gdbarch_dump: half_format = floatformat_ieee_half_little gdbarch_dump: float_format = floatformat_ieee_single_little gdbarch_dump: double_format = floatformat_ieee_double_little gdbarch_dump: long_double_format = floatformat_i387_ext ... Tested on x86_64-linux.
This commit is contained in:
@ -1104,13 +1104,13 @@ show_gdbarch_debug (struct ui_file *file, int from_tty,
|
||||
}
|
||||
|
||||
static const char *
|
||||
pformat (const struct floatformat **format)
|
||||
pformat (struct gdbarch *gdbarch, const struct floatformat **format)
|
||||
{
|
||||
if (format == NULL)
|
||||
return "(null)";
|
||||
else
|
||||
/* Just print out one of them - this is only for diagnostics. */
|
||||
return format[0]->name;
|
||||
|
||||
int format_index = gdbarch_byte_order (gdbarch) == BFD_ENDIAN_LITTLE ? 1 : 0;
|
||||
return format[format_index]->name;
|
||||
}
|
||||
|
||||
static const char *
|
||||
|
Reference in New Issue
Block a user