[Crash-utility] [PATCH] Fix compile warnings
Bernhard Walle
bwalle at suse.de
Thu Jan 18 13:50:38 UTC 2007
Hi,
* Dave Anderson <anderson at redhat.com> [2007-01-17 21:10]:
> Bernhard Walle wrote:
> > >
> > > This patch makes me a litte nervous. I see that gdb 6.5 does this:
> > >
> > > else if (*augmentation == 'P')
> > > {
> > > /* Skip. Avoid indirection since we throw away the result. */
> > > gdb_byte encoding = (*buf++) & ~DW_EH_PE_indirect;
> > > read_encoded_value (unit, encoding, buf, &bytes_read);
> > > buf += bytes_read;
> > > augmentation++;
> > > }
> > >
> > > Are they equivalent?
> >
> > Of course not. :) After thinking a bit I think the correct fix would
> > be:
> >
> > buf += size_of_encoded_value(*buf);
> > buf++;
> >
> > Do you aggree?
>
> I can't say with any confidence. I was trying to correlate the difference
> between the way it's done in gdb-6.5 vs 6.1, and got lost doing so...
Yes, but 6.5 basically does:
gdb_byte tmp = *buf++;
buf += size_of_encoded_value(tmp);
which should be equivalent to
buf += size_of_encoded_value(*buf);
buf++;
Of course, read_encoded_value() does more than just calling
size_of_encoded_value(), but anyway.
> Just curious -- how do you manage to get crash to run through that
> code path? (I put an exit() there, but can't seem to get there...)
I didn't. I just wrote a small C program which has the same problem.
(Increasing that pointer in the same operation.)
Probably that code path will be never hit at all. ;)
BTW: Is it planned to upgrade crash to use GDB 6.6 or some higher
version?
Regards,
Bernhard
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20070118/0e2a9fe5/attachment.sig>
More information about the Crash-utility
mailing list