[Dwarf-Discuss] OP_fbreg within AT_frame_base, static or dynamic ?
Tristan Gingold
gingold@adacore.com
Tue Mar 1 09:21:31 GMT 2011
Hi,
The DW_OP_fbreg has a meaning only within the context of DW_AT_frame_base.
My question is about the semantic on the 'within' (which doesn't appear in the standard): it is static or
dynamic.
Ie, is this dwarf CU valid ?
Note that the node <113> which uses OP_deref is not a child or a grand-child of node <74> which has the AT_frame_base.
Some debuggers only allow static imbrication, while some others allow dynamic one.
<0><b>: Abbrev Number: 1 (DW_TAG_compile_unit)
...
<1><74>: Abbrev Number: 2 (DW_TAG_subprogram)
...
<92> DW_AT_frame_base : 0x0 (location list)
...
<2><9a>: Abbrev Number: 3 (DW_TAG_formal_parameter)
...
<2><a6>: Abbrev Number: 3 (DW_TAG_formal_parameter)
...
<2><b2>: Abbrev Number: 4 (DW_TAG_variable)
<b3> DW_AT_name : b
<b5> DW_AT_decl_file : 1
<b6> DW_AT_decl_line : 3
<b7> DW_AT_type : <0x10a>
<bb> DW_AT_location : 3 byte block: 91 50 6 (DW_OP_fbreg: -48; DW_OP_deref)
<1><102>: Abbrev Number: 9 (DW_TAG_base_type)
<103> DW_AT_byte_size : 1
<104> DW_AT_encoding : 6 (signed char)
<105> DW_AT_name : char
<1><10a>: Abbrev Number: 11 (DW_TAG_array_type)
<10b> DW_AT_type : <0x102>
<2><113>: Abbrev Number: 12 (DW_TAG_subrange_type)
<114> DW_AT_type : <0x11d>
<118> DW_AT_upper_bound : 3 byte block: 91 58 6 (DW_OP_fbreg: -40; DW_OP_deref) [without DW_AT_frame_base]
<1><11d>: Abbrev Number: 9 (DW_TAG_base_type)
<11e> DW_AT_byte_size : 8
<11f> DW_AT_encoding : 7 (unsigned)
<120> DW_AT_name : long unsigned int
(Maybe this question was already asked but I wasn't able to find the answer in the ml archives).
Regards,
Tristan.
More information about the Dwarf-discuss
mailing list