#
7dec7afe |
|
05-Oct-2023 |
David Karoly <karolyd577@gmail.com> |
Debugger: add DWARF5 attribute and form definitions Introduce new attribute classes: * addrptr represents an offset into the .debug_addr_section * loclist represents an offset or an index to a location list * rangelist represents an offset or an index to a range list * stroffsetsptr represents an index to the indirect string table The semantics of some existing attribute classes changed: * loclistptr represents an offset into the .debug_loc / .debug_loclist section It will be used only when setting loclists_base attribute. In all other places we should use loclist attribute class. * rangelistptr represents an offset into the .debug_ranges / .debug_rnglist section It will be used only when setting rnglists_base attribute. In all other places we should use rangelist attribute class. Define lookup table for new DW_AT_* attribute types * change the existing references to AC_LOCLISTPTR to AC_LOCLIST as in those places now either an index or an offset can be accepted (previously there were no indexes, only offsets everywhere) * only DW_AT_loclists_base uses AC_LOCLISTPTR * similarly for AC_RANGELISTPTR and AC_RANGELIST as ranges can be specified using either an index or an offset * only DW_AT_rnglists_base uses AC_RANGELISTPTR Define lookup table for new DW_FORM_* attribute forms * similar reshuffle for location lists and range lists Change-Id: I78d307889cd6082a19870afdc571dc0c83d19644 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6982 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
57893202 |
|
07-Aug-2018 |
Rene Gollent <rene@gollent.com> |
Debugger: Fix #14321. DIESubprogram: - Adjust to inherit from DIENamespace, as gcc can and will use it as a container in some circumstances. DIEClassBaseType: - Add accessor for member functions. DwarfImageDebugInfo: - Adjust recursive walking for types to take into account any DIENamespace, not just DW_TAG_namespace specifically. - Factor out adding function to list into a helper. - When retrieving the list of functions, perform a similar recursive walk as is done when building the types table, as some subprograms are apparently not always added to the root compilation unit entry. Curiously, this behavior seems to be relatively specific to a struct/class type declared inside a function in GCC's case, but based on the DWARF spec, there does not appear to be any specific restriction as far as where these can be nested, so be a bit more paranoid to ensure we don't encounter similar cases in the future.
|