This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] Fix info mem command for 32 bits host/64 bits target


Hi,
I follow-up for an old patch that I've noticed it's not pushed yet.
Please see below the reference to previous conversation, bug entry and
the updated patch.

This is the latest conversation for this patch:
https://sourceware.org/ml/gdb-patches/2013-06/msg00806.html

Bug entry:
http://sourceware.org/bugzilla/show_bug.cgi?id=15684


gdb/ChangeLog:

2014-11-05  Catalin Udma  <catalin.udma@freescale.com>

	PR gdb/15684
	* memattr.c (mem_info_command): Remove "unsigned long" casts.


Subject: [PATCH] Fix info mem command for 32 bits host/64 bits target

When running gdb on 32 bits host for 64 bits target, info mem command
truncates the target address to 32 bits, like in the example below
	(gdb) set architecture powerpc:common64
	(gdb) mem 0x100000000 0x200000000 rw
	(gdb) info mem
	1   y  	0x0000000000000000 0x0000000000000000 rw nocache

Signed-off-by: Catalin Udma <catalin.udma@freescale.com>
---
 gdb/memattr.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/gdb/memattr.c b/gdb/memattr.c
index 25e4554..9d2a2d4 100644
--- a/gdb/memattr.c
+++ b/gdb/memattr.c
@@ -447,9 +447,9 @@ mem_info_command (char *args, int from_tty)
 		       m->number,
 		       m->enabled_p ? 'y' : 'n');
       if (gdbarch_addr_bit (target_gdbarch ()) <= 32)
-	tmp = hex_string_custom ((unsigned long) m->lo, 8);
+	tmp = hex_string_custom (m->lo, 8);
       else
-	tmp = hex_string_custom ((unsigned long) m->lo, 16);
+	tmp = hex_string_custom (m->lo, 16);
       
       printf_filtered ("%s ", tmp);
 
@@ -458,14 +458,14 @@ mem_info_command (char *args, int from_tty)
 	  if (m->hi == 0)
 	    tmp = "0x100000000";
 	  else
-	    tmp = hex_string_custom ((unsigned long) m->hi, 8);
+	    tmp = hex_string_custom (m->hi, 8);
 	}
       else
 	{
 	  if (m->hi == 0)
 	    tmp = "0x10000000000000000";
 	  else
-	    tmp = hex_string_custom ((unsigned long) m->hi, 16);
+	    tmp = hex_string_custom (m->hi, 16);
 	}
 
       printf_filtered ("%s ", tmp);
-- 
1.7.8


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]