Perhaps you could use an attribute with the full "path" as a string.
I'm not sure it's high-value information, perhaps only useful for some
sort of "info type" command that wants to describe the type.

On 10/12/24 16:59, Adrian Prantl via Dwarf-discuss wrote:
> CAUTION! External Email. Do not click links or open attachments unless you 
> recognize the sender and are sure the content is safe.
> If you think this is a phishing email, please report it by using the "Phish 
> Alert Report" button in Outlook.
>
> On Sep 30, 2024, at 1:39 PM, Martin <li...@mfriebe.de> wrote:
>> On 30/09/2024 19:30, Adrian Prantl wrote:
>>> PS: One thing I left out is DW_AT_Property_Object. It wasn't clear to me 
>>> why this wouldn't always be the address of the parent object of the 
>>> DW_TAG_property.
>> There is a construct where a property can point to an embedded structure.
>>
>> type
>> TMyRecord = record
>>    a,b: integer;
>> end;
>>
>> TMyClass = class
>>    FPadding: word;
>>    FData: TMyRecord;
>>    FOther: TMyRecord; // Can't use the type to search for FData
>>    property ValA: integer read FData.a;
>> end;
>>
>> In that case DW_AT_Property_Forward  points to the member "a" in 
>> "TMyRecord". This would be a DW_TAG_Member, which would have a 
>> DW_AT_data_member_location relative to the structure FData address. However 
>> there is no address where MyRecord is stored.
> Interesting example! In this case a DW_TAG_property_getter needs to point to 
> the member "a" of the field FData specifically, so it can't be a reference to 
> the DW_TAG_member "a" in TMyRecord. I can't think of a good way of preserving 
> the access path of the field here. We could allow a DW_AT_location + 
> DW_AT_type to allow a consumer to derive the value, but not the access path. 
> In the general case (think something like "read 
> FBinaryTree.left.left.right.data") we lack the expressivity to preserve which 
> sub-field in the data structure, since DWARF does not encode expressions, 
> only types.
>
> I think it would be reasonable to allow the common case of referring to a 
> top-level field via a DW_TAG_member ref, and having an arbitrary DWARF 
> expression in a DW_AT_location to recover the location in all other cases.
>
> -- adrian
> --
> Dwarf-discuss mailing list
> Dwarf-discuss@lists.dwarfstd.org
> https://lists.dwarfstd.org/mailman/listinfo/dwarf-discuss


-- 
Dwarf-discuss mailing list
Dwarf-discuss@lists.dwarfstd.org
https://lists.dwarfstd.org/mailman/listinfo/dwarf-discuss

Reply via email to