svn commit: r195747 - head/lib/libdwarf
Navdeep Parhar
np at FreeBSD.org
Fri Jul 17 21:15:10 UTC 2009
Author: np
Date: Fri Jul 17 21:15:09 2009
New Revision: 195747
URL: http://svn.freebsd.org/changeset/base/195747
Log:
Store accurate offset information in CTF data. A large number of
structs had incorrect member offsets, limiting dtrace's usefulness
when working with them. An example of incorrect info (struct
rtentry) from before this fix:
<1738> STRUCT rtentry (200 bytes)
rt_nodes type=1731 off=0
rt_gateway type=849 off=65280 <== WRONG, should be 8 * 96
rt_flags type=3 off=65344 <== wrong again, and so on..
...
Approved by: re (kib), gnn (mentor)
MFC after: 2 weeks
Modified:
head/lib/libdwarf/dwarf_loc.c
Modified: head/lib/libdwarf/dwarf_loc.c
==============================================================================
--- head/lib/libdwarf/dwarf_loc.c Fri Jul 17 21:11:08 2009 (r195746)
+++ head/lib/libdwarf/dwarf_loc.c Fri Jul 17 21:15:09 2009 (r195747)
@@ -236,7 +236,7 @@ dwarf_op_num(uint8_t pointer_size, uint8
case DW_OP_plus_uconst:
case DW_OP_regx:
case DW_OP_piece:
- uval = dwarf_decode_sleb128(&p);
+ uval = dwarf_decode_uleb128(&p);
break;
/* Operations with a signed LEB128 operand. */
@@ -458,7 +458,7 @@ dwarf_loc_fill(Dwarf_Locdesc *lbuf, uint
case DW_OP_plus_uconst:
case DW_OP_regx:
case DW_OP_piece:
- operand1 = dwarf_decode_sleb128(&p);
+ operand1 = dwarf_decode_uleb128(&p);
break;
/* Operations with a signed LEB128 operand. */
More information about the svn-src-head
mailing list