[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