diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/dwarf2-frame.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 904af44..512b841 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2004-11-20 Mark Kettenis <kettenis@gnu.org> + + * dwarf2-frame.c (read_encoded_value): Correctly calculate number + of bytes read for aligned LEB128 encodings. + 2004-11-19 Mark Kettenis <kettenis@gnu.org> * bsd-kvm.c (bsd_kvm_pcb_cmd): Cast return value from diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c index 03984e2..fc0ac8b 100644 --- a/gdb/dwarf2-frame.c +++ b/gdb/dwarf2-frame.c @@ -1176,7 +1176,7 @@ read_encoded_value (struct comp_unit *unit, unsigned char encoding, { ULONGEST value; unsigned char *end_buf = buf + (sizeof (value) + 1) * 8 / 7; - *bytes_read_ptr = read_uleb128 (buf, end_buf, &value) - buf; + *bytes_read_ptr += read_uleb128 (buf, end_buf, &value) - buf; return base + value; } case DW_EH_PE_udata2: @@ -1192,7 +1192,7 @@ read_encoded_value (struct comp_unit *unit, unsigned char encoding, { LONGEST value; char *end_buf = buf + (sizeof (value) + 1) * 8 / 7; - *bytes_read_ptr = read_sleb128 (buf, end_buf, &value) - buf; + *bytes_read_ptr += read_sleb128 (buf, end_buf, &value) - buf; return base + value; } case DW_EH_PE_sdata2: |