#
8497e566 |
|
13-Nov-2023 |
David Karoly <karolyd577@gmail.com> |
Debugger: implement DWARF5 indirect string and address forms Change-Id: Ie3ee6f4eb14606ee2d412d8e7122d59472619f81 Reviewed-on: https://review.haiku-os.org/c/haiku/+/7059 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
#
3c16ba4e |
|
06-Nov-2023 |
David Karoly <karolyd577@gmail.com> |
Debugger: introduce target endianness handling Change-Id: I597a667de1461383ce9e96e8ea9902895cf80ec6 Reviewed-on: https://review.haiku-os.org/c/haiku/+/7073 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
#
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>
|
#
3f2abbc3 |
|
05-Oct-2023 |
David Karoly <karolyd577@gmail.com> |
Debugger: implement DWARF5 compile unit header parsing * introduce new field unitType. Currently we support only DW_UT_compile unit type. * abbrevOffset and addressSize are shuffled around Change-Id: I67db242240012b52e0ec59f87ffab7cb937eb212 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6981 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
#
a5c358a6 |
|
04-Oct-2023 |
David Karoly <karolyd577@gmail.com> |
Debugger: implement parsing DW_FORM_implicit_const For attributes with form DW_FORM_implicit_const, the attribute specification contains a third part which is a signed LEB128 number. This value shall be used as the value of the attribute when parsing the debug_info section. Change-Id: I3e9aa3ba70b3aa05e6d2f570a1464966c38e4b1b Reviewed-on: https://review.haiku-os.org/c/haiku/+/6980 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Rene Gollent <rene@gollent.com>
|
#
006478bf |
|
03-Oct-2023 |
David Karoly <karolyd577@gmail.com> |
Debugger: implement DWARFv5 line-info handling * add new field for .debug_line_str section * implement reading string and int values tagged with DW_FORM_* * skip new fields addressSize, segmentSelectorSize in line info header * parse directories and file names according to new syntax * enable line-info parsing up to version 5 Change-Id: I1dd7e0d834c73f6d72b7115c7ded9f868be84a3d Reviewed-on: https://review.haiku-os.org/c/haiku/+/6978 Reviewed-by: Rene Gollent <rene@gollent.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
3f2464f7 |
|
30-Aug-2023 |
David Karoly <karolyd577@gmail.com> |
Debugger: implement parsing for v4 line-info Differences between DWARF v3/v4 for line-info: - added new field maxOpsPerInstruction this new field will typically have the value of 1 unless VLIW architecture is being used (which is not the case for Haiku) - state machine contains a new field op_index it has any relevance only when maxOpsPerInstruction > 1 i.e. on VLIW architectures - added new operation DW_LNE_set_discriminator this is already implemented in LineNumberProgram.cpp This implementation just reads maxOpsPerInstruction and checks that it is set to 1, which is what we expect on all architectures currently supported by Haiku. Change-Id: I14755d615a0e2b3a5177928c4d8f9014940a5fcf Reviewed-on: https://review.haiku-os.org/c/haiku/+/6876 Reviewed-by: Rene Gollent <rene@gollent.com>
|
#
692e2e45 |
|
25-Aug-2023 |
Augustin Cavalier <waddlesplash@gmail.com> |
Debugger: Move line-info version check up and print a warning. This way it will be clear why there is no line-info.
|
#
15969ccf |
|
25-Aug-2023 |
Augustin Cavalier <waddlesplash@gmail.com> |
Debugger: Downgrade a warning to a TRACE. We don't need to know all the objects which have no debug information; this just spams the console.
|
#
f0e9ed44 |
|
09-Jun-2023 |
KENZ <KENZ.gelsoft@gmail.com> |
Debugger: just skip .debug_frame/.eh_frame section contains a 0-length CIE Some executables (or shared objects) may have .debug_frame or .eh_frame section which contains the CIE(/FDE) length is 0. The DWARF spec doesn't describe this case explicitly, but doesn't prohibit it. LSB says to treat this a terminator of the CIE. https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html Previous code failed to load the entire debug info of the executable. New code just skip these section (don't read anymore) after the Debugger (kit) encounter a 0-length CIE. Fixes #18438. Change-Id: I382d0ec409d40570b5bccd384d38fa3c29ae2e7f Reviewed-on: https://review.haiku-os.org/c/haiku/+/6538 Reviewed-by: Rene Gollent <rene@gollent.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
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.
|