History log of /haiku/src/kits/debugger/dwarf/DebugInfoEntries.cpp
Revision Date Author Comments
# d5be5b61 11-Oct-2023 David Karoly <karolyd577@gmail.com>

Debugger: handle call_site similarly to GNU_call_site

Change-Id: I37c6a2903bd5001c03b86aa09f1d2d04ab87365e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7040
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 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.


# fce4895d 29-May-2016 Rene Gollent <rene@gollent.com>

Debugger: Split into core library and application.

- Add subfolder src/kits/debugger which contains the debugger's core
functionality and lower layers. Correspondingly add headers/private/debugger
for shared headers to be used by clients such as the Debugger application
and eventual remote_debug_server. Adjust various files to account for
differences as a result of the split and moves.
- Add libdebugger.so to minimal Jamfile.