This is the mail archive of the gdb-patches@sources.redhat.com 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]

Re: [PATCH] exec.c: print_section_info() format string fixes


On Dec 20,  6:51pm, Andrew Cagney wrote:

> I don't think the problem is fixed, just improved.  The 08l / 016l test 
> assumes that the address is <= 64 bits.  Hence, I think some sort of 
> FIXME should remain [...]

With regard to the FIXME comments, I've just committed the following:

	* exec.c (print_section_info): Add FIXME comments regarding format
	string choices.

Index: exec.c
===================================================================
RCS file: /cvs/src/src/gdb/exec.c,v
retrieving revision 1.25
diff -u -p -r1.25 exec.c
--- exec.c	19 Dec 2002 19:02:57 -0000	1.25
+++ exec.c	23 Dec 2002 23:34:24 -0000
@@ -545,6 +545,7 @@ void
 print_section_info (struct target_ops *t, bfd *abfd)
 {
   struct section_table *p;
+  /* FIXME: "016l" is not wide enough when TARGET_ADDR_BIT > 64.  */
   char *fmt = TARGET_ADDR_BIT <= 32 ? "08l" : "016l";
 
   printf_filtered ("\t`%s', ", bfd_get_filename (abfd));
@@ -560,6 +561,12 @@ print_section_info (struct target_ops *t
     {
       printf_filtered ("\t%s", local_hex_string_custom (p->addr, fmt));
       printf_filtered (" - %s", local_hex_string_custom (p->endaddr, fmt));
+
+      /* FIXME: A format of "08l" is not wide enough for file offsets
+	 larger than 4GB.  OTOH, making it "016l" isn't desirable either
+	 since most output will then be much wider than necessary.  It
+	 may make sense to test the size of the file and choose the
+	 format string accordingly.  */
       if (info_verbose)
 	printf_filtered (" @ %s",
 			 local_hex_string_custom (p->the_bfd_section->filepos, "08l"));


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