From: Mark Wielaard Date: Fri, 16 Nov 2012 11:25:04 +0000 (+0100) Subject: readelf.c (print_ops): Ajust DW_OP_skip and DW_OP_bra targets calculation. X-Git-Tag: elfutils-0.156~69 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e3bd4f5ee255c494853abe9e015d01b0c3baf63;p=thirdparty%2Felfutils.git readelf.c (print_ops): Ajust DW_OP_skip and DW_OP_bra targets calculation. The 2-byte constant is the number of bytes of the DWARF expression to skip forward or backward from the current operation, beginning after the 2-byte constant. Signed-off-by: Mark Wielaard --- diff --git a/src/ChangeLog b/src/ChangeLog index 9d6fbe3c3..9f0c525ac 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-10-16 Mark Wielaard + + * readelf.c (print_ops): DW_OP_skip and DW_OP_bra targets are + calculated beginning after the operand and 2-byte constant. + 2012-10-12 Jan Kratochvil * readelf.c (ITEM_WRAP_COLUMN, REGISTER_WRAP_COLUMN): Merge to ... diff --git a/src/readelf.c b/src/readelf.c index 1801c1c5c..7f6f31c6e 100644 --- a/src/readelf.c +++ b/src/readelf.c @@ -3802,7 +3802,7 @@ print_ops (Dwfl_Module *dwflmod, Dwarf *dbg, int indent, int indentrest, NEED (2); printf ("%*s[%4" PRIuMAX "] %s %" PRIuMAX "\n", indent, "", (uintmax_t) offset, op_name, - (uintmax_t) (offset + read_2sbyte_unaligned (dbg, data))); + (uintmax_t) (offset + read_2sbyte_unaligned (dbg, data) + 3)); CONSUME (2); data += 2; offset += 3;