This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[RFC] Another 64 bit CORE_ADDR & 32 bit target address printing botch
- From: Fred Fish <fnf at intrinsity dot com>
- To: gdb-patches at sources dot redhat dot com
- Cc: fnf at intrinsity dot com
- Date: Sat, 7 Sep 2002 23:33:30 -0500 (CDT)
- Subject: [RFC] Another 64 bit CORE_ADDR & 32 bit target address printing botch
- Reply-to: fnf at intrinsity dot com
I found another place where 32 bit addresses with the MSB set are printed
as 0xffffffffxxxxxxxx. I hacked around the problem with this patch,
but it might not be the best place to do it. Any better ideas?
-Fred
Index: ui-out.c
===================================================================
RCS file: /mips/newtools/fsf/gdb/gdb/ui-out.c,v
retrieving revision 1.1.1.3
diff -c -r1.1.1.3 ui-out.c
*** ui-out.c 2002/08/31 02:49:14 1.1.1.3
--- ui-out.c 2002/09/08 04:29:28
***************
*** 491,506 ****
CORE_ADDR address)
{
char addstr[20];
/* FIXME: cagney/2002-05-03: Need local_address_string() function
that returns the language localized string formatted to a width
based on TARGET_ADDR_BIT. */
/* print_address_numeric (address, 1, local_stream); */
if (TARGET_ADDR_BIT <= 32)
! strcpy (addstr, local_hex_string_custom (address, "08l"));
else
! strcpy (addstr, local_hex_string_custom (address, "016l"));
!
ui_out_field_string (uiout, fldname, addstr);
}
--- 491,510 ----
CORE_ADDR address)
{
char addstr[20];
+ char *fmt;
/* FIXME: cagney/2002-05-03: Need local_address_string() function
that returns the language localized string formatted to a width
based on TARGET_ADDR_BIT. */
/* print_address_numeric (address, 1, local_stream); */
+
if (TARGET_ADDR_BIT <= 32)
! fmt = "08l";
else
! fmt = "016l";
! if (TARGET_ADDR_BIT < (sizeof (CORE_ADDR) * HOST_CHAR_BIT))
! address &= ((CORE_ADDR) 1 << TARGET_ADDR_BIT) - 1;
! strcpy (addstr, local_hex_string_custom (address, fmt));
ui_out_field_string (uiout, fldname, addstr);
}