[Dwarf-Discuss] .debug_frame and the base address

Robert Harris robert.m.harris@oracle.com
Mon Sep 24 15:44:28 GMT 2018



> On 24 Sep 2018, at 15:33, Greg Clayton <clayborg at gmail.com> wrote:
> 
> 
> 
>> On Sep 24, 2018, at 7:15 AM, Robert Harris via Dwarf-Discuss <dwarf-discuss at 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?




More information about the Dwarf-discuss mailing list