This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: question about objdump output format ?
- From: Nick Clifton <nickc at cambridge dot redhat dot com>
- To: Ralf dot Habacker at freenet dot de
- Cc: robert dot collins at itdomain dot com dot au, cygwin-apps at cygwin dot com,binutils at sources dot redhat dot com
- Date: 28 May 2002 11:10:39 +0100
- Subject: Re: question about objdump output format ?
- References: <001501c205c3$26bb83e0$651c440a@BRAMSCHE>
Hi Ralf,
> Here is the patch. It is based on the "objdump_ai_segfault_2.patch",
> which I have send in before.
>
> Changelog entry for bfd dir ----------------------
>
> 2002-05-22 Ralf Habacker <ralf.habacker@freenet.de>
>
> * peXXigen.c (pe_print_idata()): removed double printed
> import table lines, added Bound-To comment.
>
> I hope, the changelog entry is clear. It may be, that the indents
> ate 100% pure, please correct if necessary
Unfortunately I have some problems with this patch:
* It does not apply against the current sources in the CVS
repository. In fact it is not even close. There has been some
recent work on this code by Laurent Pinchart
<laurent.pinchart@skynet.be> which chnages the layout for the
code. Please could you download the latest CVS sources from
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/?cvsroot=src
or a recent snapshot from:
ftp://sources.redhat.com/pub/binutils/snapshots
and then create a patch against these sources.
* It appears that although the statement:
fprintf (file, _("\tvma: Hint/Ord Member-Name\n"));
implies that a member name will be printed, if the top bit of the
VMA is set, no name is output:
if (member & 0x80000000)
fprintf (file, "\t%04lx\t %4lu", member,
member & 0x7fffffff);
This is a problem because your patch changes the fprintf to:
fprintf (file, _("\tvma: Hint/Ord Member-Name Bound-To\n"));
So that readers might confuse the Bound-To address that is printed
later on with the (non-existent) Member-Name. May I suggest that
you change the fprintf for when the top bit is set to something
like:
if (member & 0x80000000)
fprintf (file, "\t%04lx\t %4lu <none>", member,
member & 0x7fffffff);
* Your patch completely eliminates the loop starting:
for (j = 0; j < datasize; j += 4)
I understand that this is the duplicate information that you are
trying to avoid, but what if datasize is greater than 4 ? Would
this not mean that extra information that should be displayed is
no longer printed ?
> One issue may be, printing the line "The Import Address Table is
> identical" or The Import Address Table (difference are found)",
> which I have removed, because I currently see no other reasons than
> on bounded addresses and this is printed explicit. Any comments ?
Given that the Bound-To addresses are being explicitly displayed, I do
not have a problem with your patch removing this line.
Cheers
Nick