-
Notifications
You must be signed in to change notification settings - Fork 120
Open
Description
If debug info contains
.uleb128 0x2136 # (DW_AT_GNU_discriminator)
.uleb128 0x21 # (DW_FORM_implicit_const)
.sleb128 <XXX>
create_gcov will ignore it. See for testcases.
This can be fixed by handling discriminators both as signed and unsigned same way line numbers are handled already.
diff --git a/util/symbolize/addr2line_inlinestack.cc b/util/symbolize/addr2line_inlinestack.cc
index f68f6e1..8eeb8bd 100644
--- a/util/symbolize/addr2line_inlinestack.cc
+++ b/util/symbolize/addr2line_inlinestack.cc
@@ -493,6 +493,12 @@ void InlineStackHandler::ProcessAttributeSigned(
subprogram_stack_.back()->set_callsite_line(data);
break;
-
// In case discriminator is implicit const, it is processed as signed -
// rather then unsigned value. -
case DW_AT_GNU_discriminator: -
CHECK(form == DW_FORM_implicit_const); -
subprogram_stack_.back()->set_callsite_discr(data); -
}
break; default: break;
Metadata
Metadata
Assignees
Labels
No labels