> On 24 Sep 2018, at 16:59, Greg Clayton <clayb...@gmail.com> wrote: > > > >> On Sep 24, 2018, at 8:44 AM, Robert Harris <robert.m.har...@oracle.com> >> wrote: >> >> >> >>> On 24 Sep 2018, at 15:33, Greg Clayton <clayb...@gmail.com> wrote: >>> >>> >>> >>>> On Sep 24, 2018, at 7:15 AM, Robert Harris via Dwarf-Discuss >>>> <dwarf-discuss@lists.dwarfstd.org> wrote: >>>> >>>> I'd like some clarification regarding what precisely needs to be relocated >>>> relative to >>>> the object load address when interpreting .debug_frame. I'm interested in >>>> versions >>>> 2, 3 and 4. >>>> >>>> I think the only explicit mention of relocation in DWARF 4 is ยง 6.4.1: >>>> >>>> Abstractly, this mechanism describes a very large table... >>>> ... >>>> The first column indicates an address for every location that contains >>>> code in a program. (In shared objects, this is an object-relative >>>> offset.) >>>> >>>> Thus adjustments need to be made to only >>>> >>>> An FDE's initial_location field >>>> DW_CFA_set_loc's operand >>>> >>>> Have I missed anything? I see some ambiguity in the definition of >>>> DW_CFA_def_cfa_expression and it's making me wonder if there are any >>>> other occasions when a result would require relocation. >>> >>> Any DWARF expression can contain a DW_OP_addr, which has an address >>> argument, and would need to be relocated. >> >> Do you mean that DW_OP_addr's argument should be relocated in all instances >> of a DWARF expression, i.e. in other .debug_ sections, or just in the >> context of >> .debug_frame? > > I was specifically talking about DWARF expressions in any .debug_frame info.
Well, that would preclude relocating the *result* of any DWARF expression in .debug_frame. For some expressions, e.g. DW_CFA_expression, the use of the CFA to initialise the stack implies as much but this would be a useful blanket constraint. > But in general, yes, any DWARF expression that contains a DW_OP_addr might > need a relocation for its address argument. Are you aware of where in the standard this is documented? It sounds reasonable but I'm returning to this after a long time and I don't remember my way around as well as I used to. _______________________________________________ Dwarf-Discuss mailing list Dwarf-Discuss@lists.dwarfstd.org http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org