Loading llvm/lib/DebugInfo/DWARF/DWARFDie.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -190,7 +190,8 @@ static void dumpAttribute(raw_ostream &OS, const DWARFDie &Die, // We have dumped the attribute raw value. For some attributes // having both the raw value and the pretty-printed value is // interesting. These attributes are handled below. if (Attr == DW_AT_specification || Attr == DW_AT_abstract_origin) { if (Attr == DW_AT_specification || Attr == DW_AT_abstract_origin || Attr == DW_AT_call_origin) { if (const char *Name = Die.getAttributeValueAsReferencedDie(FormValue).getName( DINameKind::LinkageName)) Loading llvm/test/tools/llvm-dwarfdump/X86/prettyprint_call_site.yaml 0 → 100644 +87 −0 Original line number Diff line number Diff line # RUN: yaml2obj %s | llvm-dwarfdump - | FileCheck %s ## Check the name (preferring linkage name) of the DW_AT_call_origin DIE ## reference is printed after the address. # CHECK: DW_TAG_call_site # CHECK-NEXT: DW_AT_call_origin (0x{{[0-9a-f]+}} "_Z2f2v") # CHECK: DW_TAG_call_site # CHECK-NEXT: DW_AT_call_origin (0x{{[0-9a-f]+}} "f1") --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_EXEC Machine: EM_X86_64 DWARF: debug_str: - "_Z2f2v" - "f2" - "f1" debug_abbrev: - Table: - Code: 0x0000000000000001 Tag: DW_TAG_compile_unit Children: DW_CHILDREN_yes Attributes: - Attribute: DW_AT_low_pc Form: DW_FORM_addr - Code: 0x0000000000000002 Tag: DW_TAG_subprogram Children: DW_CHILDREN_yes Attributes: - Attribute: DW_AT_name Form: DW_FORM_strp - Attribute: DW_AT_low_pc Form: DW_FORM_addr - Attribute: DW_AT_high_pc Form: DW_FORM_addr - Code: 0x0000000000000003 Tag: DW_TAG_call_site Children: DW_CHILDREN_no Attributes: - Attribute: DW_AT_call_origin Form: DW_FORM_ref4 - Code: 0x0000000000000004 Tag: DW_TAG_subprogram Children: DW_CHILDREN_no Attributes: - Attribute: DW_AT_linkage_name Form: DW_FORM_strp - Attribute: DW_AT_name Form: DW_FORM_strp - Attribute: DW_AT_declaration Form: DW_FORM_flag_present debug_info: - Length: 0x3b Version: 5 UnitType: 0x01 # DW_TU_compile AbbrOffset: 0x0000000000000000 AddrSize: 8 Entries: - AbbrCode: 0x00000001 # start compile unit Values: # - Value: 0x0000000000000000 # - AbbrCode: 0x00000002 ## start f1 Values: ## - Value: 0x000000000000000a ## - Value: 0x0000000000001000 ## - Value: 0x0000000000002000 ## - AbbrCode: 0x00000003 ### call site Values: ### - Value: 0x0000000000000035 ### (f2) - AbbrCode: 0x00000003 ### call site Values: ### - Value: 0x0000000000000015 ### (f1) - AbbrCode: 0x00000000 ## end f1 Values: [] # - AbbrCode: 0x00000004 ## f2 Values: ## - Value: 0x0000000000000000 ## - Value: 0x0000000000000007 ## - AbbrCode: 0x00000000 # end compile unit Values: [] ... Loading
llvm/lib/DebugInfo/DWARF/DWARFDie.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -190,7 +190,8 @@ static void dumpAttribute(raw_ostream &OS, const DWARFDie &Die, // We have dumped the attribute raw value. For some attributes // having both the raw value and the pretty-printed value is // interesting. These attributes are handled below. if (Attr == DW_AT_specification || Attr == DW_AT_abstract_origin) { if (Attr == DW_AT_specification || Attr == DW_AT_abstract_origin || Attr == DW_AT_call_origin) { if (const char *Name = Die.getAttributeValueAsReferencedDie(FormValue).getName( DINameKind::LinkageName)) Loading
llvm/test/tools/llvm-dwarfdump/X86/prettyprint_call_site.yaml 0 → 100644 +87 −0 Original line number Diff line number Diff line # RUN: yaml2obj %s | llvm-dwarfdump - | FileCheck %s ## Check the name (preferring linkage name) of the DW_AT_call_origin DIE ## reference is printed after the address. # CHECK: DW_TAG_call_site # CHECK-NEXT: DW_AT_call_origin (0x{{[0-9a-f]+}} "_Z2f2v") # CHECK: DW_TAG_call_site # CHECK-NEXT: DW_AT_call_origin (0x{{[0-9a-f]+}} "f1") --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_EXEC Machine: EM_X86_64 DWARF: debug_str: - "_Z2f2v" - "f2" - "f1" debug_abbrev: - Table: - Code: 0x0000000000000001 Tag: DW_TAG_compile_unit Children: DW_CHILDREN_yes Attributes: - Attribute: DW_AT_low_pc Form: DW_FORM_addr - Code: 0x0000000000000002 Tag: DW_TAG_subprogram Children: DW_CHILDREN_yes Attributes: - Attribute: DW_AT_name Form: DW_FORM_strp - Attribute: DW_AT_low_pc Form: DW_FORM_addr - Attribute: DW_AT_high_pc Form: DW_FORM_addr - Code: 0x0000000000000003 Tag: DW_TAG_call_site Children: DW_CHILDREN_no Attributes: - Attribute: DW_AT_call_origin Form: DW_FORM_ref4 - Code: 0x0000000000000004 Tag: DW_TAG_subprogram Children: DW_CHILDREN_no Attributes: - Attribute: DW_AT_linkage_name Form: DW_FORM_strp - Attribute: DW_AT_name Form: DW_FORM_strp - Attribute: DW_AT_declaration Form: DW_FORM_flag_present debug_info: - Length: 0x3b Version: 5 UnitType: 0x01 # DW_TU_compile AbbrOffset: 0x0000000000000000 AddrSize: 8 Entries: - AbbrCode: 0x00000001 # start compile unit Values: # - Value: 0x0000000000000000 # - AbbrCode: 0x00000002 ## start f1 Values: ## - Value: 0x000000000000000a ## - Value: 0x0000000000001000 ## - Value: 0x0000000000002000 ## - AbbrCode: 0x00000003 ### call site Values: ### - Value: 0x0000000000000035 ### (f2) - AbbrCode: 0x00000003 ### call site Values: ### - Value: 0x0000000000000015 ### (f1) - AbbrCode: 0x00000000 ## end f1 Values: [] # - AbbrCode: 0x00000004 ## f2 Values: ## - Value: 0x0000000000000000 ## - Value: 0x0000000000000007 ## - AbbrCode: 0x00000000 # end compile unit Values: [] ...