DW_AT_artificial generally means the item is compiler-generated, or otherwise 
has no explicit representation in the source.
An artificial member in a structure takes up however much space it takes, just 
like any other member, and the compiler should have generated the correct 
offsets for the other members of the structure.  So, I’d expect the first 
non-artificial member to have offset 4 (or greater).  Whether the consumer (in 
this case, your application) has to compensate really depends on what the 
application is doing.
--paulr

From: Dwarf-Discuss <dwarf-discuss-boun...@lists.dwarfstd.org> On Behalf Of Ron 
Louzon via Dwarf-Discuss
Sent: Monday, February 28, 2022 8:50 AM
To: Dwarf-Discuss@lists.dwarfstd.org
Subject: [Dwarf-Discuss] How to interpret DW_AT_artificial tag?

I have an application which uses DwarfLib to extract type information from 
debug executable images.  I have found in the DWARF data that some structure 
types have a "virtual" pointer added as their first member and this pointer's 
DIE contains the tag DW_AT_artificial=true.  How does that pointer member 
affect the offsets of the members that follow it in the structure.  Should this 
4-byte pointer be ignored or will its size cause the other structure members to 
be pushed out in memory by 4 bytes?

thanks,
ron
_______________________________________________
Dwarf-Discuss mailing list
Dwarf-Discuss@lists.dwarfstd.org
http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org

Reply via email to