This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
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"));