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

Andrew Cagney ac131313@redhat.com
Fri Jan 3 21:38:00 GMT 2003


> 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.


thanks!

Andrew


> 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"));
> 
> 




More information about the Gdb-patches mailing list