You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As noted by 352c31e, drgn.Type.tag includes the template arguments because the DW_AT_name attribute in DWARF includes them. tag should just be what the C standard calls tag and what the C++ standard calls class-head-name: the identifier after the struct, union, or class keyword.
To do this, we need to strip everything starting at the < character when parsing DWARF for a structure, union, or class. But this means that we can't use the string directly in the mmap'd DWARF anymore; we'll have to allocate it and track it to deallocate it (maybe interning it in a set, maybe just keeping them all in a vector). Or, we can edit the mmap, but that might get awkward with the DWARF index.
Then, when formatting a type with template parameters, we need to include those after the tag.
The text was updated successfully, but these errors were encountered:
As noted by 352c31e,
drgn.Type.tag
includes the template arguments because theDW_AT_name
attribute in DWARF includes them.tag
should just be what the C standard calls tag and what the C++ standard calls class-head-name: the identifier after thestruct
,union
, orclass
keyword.To do this, we need to strip everything starting at the
<
character when parsing DWARF for a structure, union, or class. But this means that we can't use the string directly in the mmap'd DWARF anymore; we'll have to allocate it and track it to deallocate it (maybe interning it in a set, maybe just keeping them all in a vector). Or, we can edit the mmap, but that might get awkward with the DWARF index.Then, when formatting a type with template parameters, we need to include those after the tag.
The text was updated successfully, but these errors were encountered: