[RFA/PATCH]: H8/300 - Update the generated debug information

Shrinivas Atre ShrinivasA@kpit.com
Tue Feb 25 05:16:00 GMT 2003


Hi,

The GDB for Hitachi H8 target does not show values of integers when compiled 
with -mint32 option. e.g. If you use something like "int i=30000;" 
and compile program with -mint32 option, GDB shows value of "i" as zero.

This is because, for H8 targets, GDB always treats integers as 16 bits.

There is one more reason for this, which needs one change in GCC. 

While generating COFF debug information for "int" type, the compiler 
simply inserts type "T_INT" for this.
This doesn't say if the "int" is 32 bit or 16 bit.

Attached GCC patch , depending upon size of data will export 
"int" as "short int" if the size of integer is 16 bit and
as "int" if the size of integers is 32 bits.

And to decode this on GDB, a patch is attached.
This patch will make all integers as 32 bits for h8 targets. 
Assuming that the compiler have taken care of 16 bit integers as short 
integers.

Regards,
Shrinivas

=============================================================================

GCC Changelog - 

gcc/ChangeLog 
2003-02-24 Shrinivas Atre <shrinivasa@kpit.com> 

	* gcc/sdbout.c (plain_type_1): Update COFF debug output information.
					Output "short int" if integer size is 16 bit.

GCC Patch -

--- gcc/sdbout.c.orig	Wed Feb  5 10:43:48 2003
+++ gcc/sdbout.c	Wed Feb  5 10:49:26 2003
@@ -529,9 +529,19 @@ plain_type_1 (type, level)
 	    if (!strcmp (name, "signed char"))
 	      return T_CHAR;
 	    if (!strcmp (name, "int"))
-	      return T_INT;
+	      {
+		if (size == SHORT_TYPE_SIZE)
+		  return T_SHORT;
+		else
+	      	  return T_INT;
+	      }
 	    if (!strcmp (name, "unsigned int"))
-	      return T_UINT;
+	      {
+		if (size == SHORT_TYPE_SIZE)
+		  return T_USHORT;
+		else
+	      	  return T_UINT;
+	      }
 	    if (!strcmp (name, "short int"))
 	      return T_SHORT;
 	    if (!strcmp (name, "short unsigned int"))
				       
------------------------------------------------------------------------------


GDB Changelog - 

gdb/ChangeLog 
2003-02-24 Shrinivas Atre <shrinivasa@kpit.com> 

	* gdb/h8300-tdep.c (h8300_gdbarch_init): Make default integer size as 32 bits.
				       	   	

GDB Patch -

--- gdb/h8300-tdep.orig.c	Mon Feb 24 16:47:05 2003
+++ gdb/h8300-tdep.c	Mon Feb 24 16:47:45 2003
@@ -1170,7 +1170,7 @@ h8300_gdbarch_init (struct gdbarch_info 
   set_gdbarch_fix_call_dummy (gdbarch, generic_fix_call_dummy);
   set_gdbarch_breakpoint_from_pc (gdbarch, h8300_breakpoint_from_pc);
 
-  set_gdbarch_int_bit (gdbarch, 2 * TARGET_CHAR_BIT);
+  set_gdbarch_int_bit (gdbarch, 4 * TARGET_CHAR_BIT);
   set_gdbarch_long_bit (gdbarch, 4 * TARGET_CHAR_BIT);
   set_gdbarch_ptr_bit (gdbarch, BINWORD * TARGET_CHAR_BIT);
   set_gdbarch_addr_bit (gdbarch, BINWORD * TARGET_CHAR_BIT);


=============================================================================

-----------------------------------------------------------------------------
Free download of GNUSH and GNUH8 tool chains for Hitachi's SH and H8 Series.
The following site also offers free support to European customers.
Read more at http://www.gnush.com and http://www.gnuh8.com
Latest versions of GNUSH and GNUH8 are released on January 31, 2003.
----------------------------------------------------------------------------- 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gdb.changelog
Type: application/octet-stream
Size: 167 bytes
Desc: gdb.changelog
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20030225/1c0c6765/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gcc.changelog
Type: application/octet-stream
Size: 197 bytes
Desc: gcc.changelog
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20030225/1c0c6765/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: h8300-tdep.diff
Type: application/octet-stream
Size: 587 bytes
Desc: h8300-tdep.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20030225/1c0c6765/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sdbout.diff
Type: application/octet-stream
Size: 670 bytes
Desc: sdbout.diff
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20030225/1c0c6765/attachment-0003.obj>


More information about the Gcc-patches mailing list