search for: dw_form_ref_addr

Displaying 20 results from an estimated 24 matches for "dw_form_ref_addr".

2017 Apr 04
2
GDB doesn't work with IR-originated debug info
...addr] (0x000000006e384c30) DW_AT_high_pc [DW_FORM_data4] (0x000002b4) DW_AT_frame_base [DW_FORM_exprloc] (<0x1> 54 ) DW_AT_name [DW_FORM_strp] ( .debug_str[0x00001616] = "FB_FPUMP at HORIZONTAL") DW_AT_type [DW_FORM_ref_addr] (*0x000000006e440296*) DW_ AT_external [DW_FORM_flag_present] (true) In the original object file the corresponding record was: 0x00000296: DW_TAG_base_type [10] DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000068f] = "void") DW_A...
2016 Nov 17
3
DWARF Generator
...ddAttribute(DW_AT_encoding, DW_FORM_data1, DW_ATE_signed); IntDie.addAttribute(DW_AT_byte_size, DW_FORM_data1, 4); DwarfGenDIE ArgcDie = SubprogramDie.addChild(DW_TAG_formal_parameter); ArgcDie.addAttribute(DW_AT_name, DW_FORM_strp, "argc"); //ArgcDie.addAttribute(DW_AT_type, DW_FORM_ref_addr, IntDie); // Crashes here... DG.generate(); auto Obj = object::ObjectFile::createObjectFile(Path); if (Obj) { DWARFContextInMemory DwarfContext(*Obj.get().getBinary()); uint32_t NumCUs = DwarfContext.getNumCompileUnits(); for (uint32_t i=0; i<NumCUs; ++i) { DWARF...
2016 Nov 18
4
DWARF Generator
...g, DW_FORM_data1, DW_ATE_signed); > IntDie.addAttribute(DW_AT_byte_size, DW_FORM_data1, 4); > > DwarfGenDIE ArgcDie = SubprogramDie.addChild(DW_TAG_formal_parameter); > ArgcDie.addAttribute(DW_AT_name, DW_FORM_strp, "argc"); > //ArgcDie.addAttribute(DW_AT_type, DW_FORM_ref_addr, IntDie); // Crashes here... > > DG.generate(); > > auto Obj = object::ObjectFile::createObjectFile(Path); > if (Obj) { > DWARFContextInMemory DwarfContext(*Obj.get().getBinary()); > uint32_t NumCUs = DwarfContext.getNumCompileUnits(); > for (uint32...
2016 Nov 18
2
DWARF Generator
...; IntDie.addAttribute(DW_AT_byte_size, DW_FORM_data1, 4); >>> >>> DwarfGenDIE ArgcDie = >> SubprogramDie.addChild(DW_TAG_formal_parameter); >>> ArgcDie.addAttribute(DW_AT_name, DW_FORM_strp, "argc"); >>> //ArgcDie.addAttribute(DW_AT_type, DW_FORM_ref_addr, IntDie); // >> Crashes here... >>> >>> DG.generate(); >>> >>> auto Obj = object::ObjectFile::createObjectFile(Path); >>> if (Obj) { >>> DWARFContextInMemory DwarfContext(*Obj.get().getBinary()); >>> uint32_t NumCU...
2017 May 03
4
DWARF Fission + ThinLTO
...anonymous namespaces or declared file-static) con co-exist even if their names collide. GDB does good things with this, except with Fission. Binutils DWP produces usable DWPs from DWO files with multiple CUs 2) Cross-CU references This is where it gets trickier. LLVM produces cross-CU references (DW_FORM_ref_addr) to refer to types or functions defined in one CU used from another. This only happens with (thin or plain) LTO. LLVM's had this for a while. This helps fully express interesting cases outlined in (1) - it's possible that a file-local function is inlined into another CU - by using ref_addr...
2017 May 03
3
DWARF Fission + ThinLTO
...arns/errors/complains if two CUs are in a single .dwo, and ignores all but the first. > > > Binutils DWP produces usable DWPs from DWO files with multiple CUs > > > > 2) Cross-CU references > > This is where it gets trickier. > > LLVM produces cross-CU references (DW_FORM_ref_addr) to refer to types > or functions defined in one CU used from another. This only happens with > (thin or plain) LTO. LLVM's had this for a while. > > This helps fully express interesting cases outlined in (1) - it's > possible that a file-local function is inlined into anothe...
2016 Nov 18
2
DWARF Generator
...DW_AT_byte_size, DW_FORM_data1, 4); > >>> > >>> DwarfGenDIE ArgcDie = > >> SubprogramDie.addChild(DW_TAG_formal_parameter); > >>> ArgcDie.addAttribute(DW_AT_name, DW_FORM_strp, "argc"); > >>> //ArgcDie.addAttribute(DW_AT_type, DW_FORM_ref_addr, IntDie); // > >> Crashes here... > >>> > >>> DG.generate(); > >>> > >>> auto Obj = object::ObjectFile::createObjectFile(Path); > >>> if (Obj) { > >>> DWARFContextInMemory DwarfContext(*Obj.get().getBinary())...
2017 May 04
2
DWARF Fission + ThinLTO
...le. (Unless we can refer to everything via signatures). > >> >> > Binutils DWP produces usable DWPs from DWO files with multiple CUs >> > >> > 2) Cross-CU references >> > This is where it gets trickier. >> > LLVM produces cross-CU references (DW_FORM_ref_addr) to refer to types or functions defined in one CU used from another. This only happens with (thin or plain) LTO. LLVM's had this for a while. >> > This helps fully express interesting cases outlined in (1) - it's possible that a file-local function is inlined into another CU - by u...
2012 Nov 06
2
[LLVMdev] [PATCH] basic reading reloc visitor for x86_64 ELF
...clude "llvm/Support/Dwarf.h" #include "llvm/Support/Format.h" #include "llvm/Support/raw_ostream.h" @@ -98,8 +99,16 @@ DWARFFormValue::extractValue(DataExtractor data, uint32_t *offset_ptr, indirect = false; switch (Form) { case DW_FORM_addr: - case DW_FORM_ref_addr: - Value.uval = data.getUnsigned(offset_ptr, cu->getAddressByteSize()); + case DW_FORM_ref_addr: { + RelocAddrMap::const_iterator AI + = cu->getContext().relocMap().find(*offset_ptr); + if (AI != cu->getContext().relocMap().end()) { + const std::pair<uint...
2017 May 04
3
DWARF Fission + ThinLTO
...inLTO, to create 'more unique' identifiers... but I don't know exactly how it'd all look there. > Binutils DWP produces usable DWPs from DWO files with multiple CUs > > 2) Cross-CU references > This is where it gets trickier. > LLVM produces cross-CU references (DW_FORM_ref_addr) to refer to types or functions defined in one CU used from another. This only happens with (thin or plain) LTO. LLVM's had this for a while. > This helps fully express interesting cases outlined in (1) - it's possible that a file-local function is inlined into another CU - by using ref_...
2012 Nov 06
0
[LLVMdev] [PATCH] basic reading reloc visitor for x86_64 ELF
On Mon, Nov 5, 2012 at 5:17 PM, Eric Christopher <echristo at gmail.com> wrote: > For llvm-dwarfdump we need to handle relocations inside the debug info > sections in order to successfully dump the dwarf info including strings. > Nick sent out a partial patch that did this not too long ago and I've taken > it and gone in a bit of a different direction, but kept the same basic
2013 Oct 17
1
[LLVMdev] [Debug Info PATCH] for support of ref_addr and removal of DIE duplication
...Null(); + if (!DieCU) + // We assume that Die belongs to this CU, if it is not linked to any CU yet. + DieCU = getCUDie(); + if (!EntryCU) + EntryCU = getCUDie(); + Die->addValue(Attribute, EntryCU == DieCU ? dwarf::DW_FORM_ref4 : + dwarf::DW_FORM_ref_addr, Entry); } If we made the correct assumptions inside addDIEEntry, we would make the correct decision between ref4 and ref_addr, so when we emitting a ref4, the two DIEs must belong to the same CU. If when emitting a ref4, the two DIEs do not belong to the same CU, it means we made the wrong assum...
2013 Oct 05
2
[LLVMdev] [Debug Info PATCH] for support of ref_addr and removal of DIE duplication
...anks, Manman -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131004/11693025/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Debug-Info-support-for-DW_FORM_ref_addr.patch Type: application/octet-stream Size: 7495 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131004/11693025/attachment.obj> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Debug-Info-remove-duplication-of-DIEs...
2013 Oct 10
4
[LLVMdev] [Debug Info PATCH] for support of ref_addr and removal of DIE duplication
...om-addDIEEntry.patch Type: application/octet-stream Size: 8647 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131009/b37505fe/attachment.obj> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Debug-Info-support-for-DW_FORM_ref_addr.patch Type: application/octet-stream Size: 7495 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131009/b37505fe/attachment-0001.obj> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Debug-Info-remove-duplication-of...
2016 Dec 15
1
distinct DISubprograms hindering sharing inlined subprogram descriptions
On Thu, Dec 15, 2016 at 11:35 AM Mehdi Amini <mehdi.amini at apple.com> wrote: > > > On Dec 15, 2016, at 10:54 AM, David Blaikie via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > > > Branching off from a discussion of improvements to DIGlobalVariable > representations that Adrian's working on - got me thinking about related > changes that have
2019 Sep 18
2
Remove obsolete debug info while garbage collecting
17.09.2019 3:12, David Blaikie пишет: > > > On Wed, Sep 11, 2019 at 3:32 PM Alexey Lapshin via llvm-dev > <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: > > Debuginfo and linker folks, we (AccessSoftek) would like to > suggest a proposal for removing obsolete debug info. If you find > it useful we will be happy to work on
2019 Sep 20
3
Remove obsolete debug info while garbage collecting
...>         DW_TAG_subprogram >           DW_AT_name "f1" > 0x6e: DW_TAG_compile_unit >         DW_AT_name "b.cpp" > 0x8d:   DW_TAG_subprogram >           DW_AT_name "main" > 0xa6:     DW_TAG_inlined_subroutine >             DW_AT_abstract_origin [DW_FORM_ref_addr] > (0x0000000000000056 "_Z2f1v") > > ueaueoa > ueaoueoa > > Notice that the inlined_subroutine's abstract_origin uses a linker > relocation into the debug_info section to give an absolute offset > within the finally linked debug_info section (since the debug...
2013 Oct 09
0
[LLVMdev] [Debug Info PATCH] for support of ref_addr and removal of DIE duplication
David, Thanks for reviewing! On Wed, Oct 9, 2013 at 11:36 AM, David Blaikie <dblaikie at gmail.com> wrote: > Might be easier if these were on Phabricator, but here are some thoughts: > > 0001: > This patch generally, while separated for legibility, is untested & > difficult to discuss in isolation. > I agree, this patch adds the functionality but does not use it,
2013 Oct 15
0
[LLVMdev] [Debug Info PATCH] for support of ref_addr and removal of DIE duplication
...nce. Manman -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131015/9e50594a/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Debug-Info-support-for-DW_FORM_ref_addr.patch Type: application/octet-stream Size: 8150 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131015/9e50594a/attachment.obj> -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Debug-Info-remove-duplication-of-DIEs...
2013 Oct 17
0
[LLVMdev] [Debug Info PATCH] for support of ref_addr and removal of DIE duplication
On Wed, Oct 16, 2013 at 9:10 PM, Manman Ren <manman.ren at gmail.com> wrote: > > > > On Wed, Oct 16, 2013 at 1:58 PM, David Blaikie <dblaikie at gmail.com> wrote: > >> >> >> >> On Wed, Oct 16, 2013 at 1:21 PM, Manman Ren <manman.ren at gmail.com> wrote: >> >>> >>> There are a few places where we break the assumption: