This is an archive of the discontinued LLVM Phabricator instance.

llvm-symbolizer: fix handling of DW_AT_specification in FRAME.
ClosedPublic

Authored by eugenis on Nov 22 2019, 6:21 PM.

Details

Summary

Use getSubroutineName() to the the subrouting name; this function knows
how to handle cases when DW_TAG_subprogram refers to an earlier
declaration:

0x00000050: DW_TAG_subprogram

DW_AT_linkage_name    ("_ZN1A1fEv")
DW_AT_name    ("f")

...
0x00000067: DW_TAG_subprogram

DW_AT_low_pc    (0x0000000000000000)
DW_AT_high_pc   (0x0000000000000020)
DW_AT_specification     (0x00000050 "_ZN1A1fEv")

...
0x0000008c: DW_TAG_variable

Diff Detail

Event Timeline

eugenis created this revision.Nov 22 2019, 6:21 PM
Herald added a project: Restricted Project. · View Herald Transcript
pcc accepted this revision.Nov 25 2019, 2:41 PM

LGTM

This revision is now accepted and ready to land.Nov 25 2019, 2:41 PM
This revision was automatically updated to reflect the committed changes.
dblaikie added inline comments.
llvm/test/tools/llvm-symbolizer/frame-specification.s
6–14

Could you add the original source for this test case to help explain/summarize the assembly that follows?