[Crash-utility] [PATCH] Fix compile warnings
Dave Anderson
anderson at redhat.com
Wed Jan 17 20:10:05 UTC 2007
Bernhard Walle wrote:
> Hello,
>
> * Dave Anderson <anderson at redhat.com> [2007-01-17 15:48]:
> >
> > gdb-6.1.patch:
> >
> > else if (*augmentation == 'P')
> > {
> > /* Skip. */
> > - buf += size_of_encoded_value (*buf++);
> > + buf += size_of_encoded_value (*buf);
> > augmentation++;
> > }
> >
> > 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...
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...)
> Attached I have some more fixes for the GDB patch (so this is no patch
> for crash but should be added to gdb-6.1.patch). I saw that there's
> some internal memset() with different paramter order in GDB [1], but
> that's not taken in the gdb/ subdirectory because if you compile the
> whole GDB with -D_FORTIFY_SOURCE=2, you get a linker (and not
> compiler) warning. And the linker should know about it.
>
These are all fine -- they've been addressed similarly in gdb-6.5.
Thanks,
Dave
More information about the Crash-utility
mailing list