Bernhard Walle wrote: > Hello, > > * Dave Anderson <anderson@xxxxxxxxxx> [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 -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility