]> sourceware.org Git - systemtap.git/commitdiff
DWARF_REG_MAP reg_value argument of DW_CFA_register in unwinder.
authorMark Wielaard <mjw@redhat.com>
Wed, 5 Oct 2011 21:36:52 +0000 (23:36 +0200)
committerMark Wielaard <mjw@redhat.com>
Wed, 5 Oct 2011 21:39:12 +0000 (23:39 +0200)
runtime/unwind.c

index 95a7e368e174d11a3d01daefccd8b51c59217500..750d526891c4aaee3d7e0167ccbacf5fd463d739 100644 (file)
@@ -475,12 +475,16 @@ static int processCFI(const u8 *start, const u8 *end, unsigned long targetLoc, s
                                value = DWARF_REG_MAP(value);
                                set_rule(value, Nowhere, 0, state);
                                break;
-                       case DW_CFA_register:
+                       case DW_CFA_register: {
+                               uleb128_t reg_value;
                                value = get_uleb128(&ptr.p8, end);
-                               dbug_unwind(1, "map DW_CFA_register value %ld to reg_info idx %ld\n", value, DWARF_REG_MAP(value));
+                               reg_value = get_uleb128(&ptr.p8, end);
+                               dbug_unwind(1, "map DW_CFA_register value %ld to reg_info idx %ld (reg_value %ld to reg_info idx %ld)\n", value, DWARF_REG_MAP(value), reg_value, DWARF_REG_MAP(reg_value));
                                value = DWARF_REG_MAP(value);
-                               set_rule(value, Register, get_uleb128(&ptr.p8, end), state);
+                               reg_value = DWARF_REG_MAP(reg_value);
+                               set_rule(value, Register, reg_value, state);
                                break;
+                       }
                        case DW_CFA_expression:
                                value = get_uleb128(&ptr.p8, end);
                                dbug_unwind(1, "map DW_CFA_expression value %ld to reg_info idx %ld\n", value, DWARF_REG_MAP(value));
This page took 0.028593 seconds and 5 git commands to generate.