[PATCH v4 0/3] Fortran entry and DW_TAG_entry_point
Nils-Christian Kempke
nils-christian.kempke@intel.com
Wed Jul 13 11:12:23 GMT 2022
Hi,
please find attached version 4 of this series. Changes from v3 mainly
try to incorporate Andrew's comments here:
https://sourceware.org/pipermail/gdb-patches/2022-July/190630.html
Changes since v3:
* Patch 1 and 2 were introduced in order to not clutter patch 3 too
much.
* Patch 1 was introduced because of some code duplication in v3. It
outsources some code from dwarf2_get_pc_bounds into a separate function
to make the addition of the entry point handling easier. It should not
contain any functional changes.
* Patch 2 was introduced because, as Andrew noted correctly,
dwarf2_get_pc_bounds was unconditionally writing to some pointer
without checking it being non-null, an error I had replicated in
my own patch. I found it appropriate to make a separate patch for
this change. The assert should only trigger when we are attempting
to dereference a nullptr - which should have killed GDB anyway.
* Patch 3 still contains the addition of the DW_TAG_entry_point. I
rebased it on patch 1 and 2. It relies heavily on patch 1 and its
refactoring. It contains all leftover fixes for Andrew's comments.
Most importantly it now applies GNU coding style in the example and I
changed '__asm__' to 'asm'. I also added the missing use of int_size
in dw2-entry-points.exp.
v1 can be found here:
https://sourceware.org/pipermail/gdb-patches/2022-March/186900.html
v2 can be found here:
https://sourceware.org/pipermail/gdb-patches/2022-April/187853.html
v3 can be found here:
https://sourceware.org/pipermail/gdb-patches/2022-July/190556.html
This was tested against regressions on Ubuntu 20 x86_64 with the boards
unix, unix/-m32, native-gdbserver, and native-extended-gdbserver.
Thanks,
Nils
Nils-Christian Kempke (3):
gdb, dwarf: move part of dwarf2_get_pc_bounds into separate function
gdb, dwarf: add assert to dwarf2_get_pc_bounds
dwarf, fortran: add support for DW_TAG_entry_point
gdb/dwarf2/abbrev.c | 1 +
gdb/dwarf2/cooked-index.h | 3 +-
gdb/dwarf2/index-write.c | 3 +-
gdb/dwarf2/read.c | 132 +++++++++--
gdb/testsuite/gdb.dwarf2/dw2-entry-points.c | 43 ++++
gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp | 215 ++++++++++++++++++
gdb/testsuite/gdb.fortran/entry-point.exp | 84 +++++++
gdb/testsuite/gdb.fortran/entry-point.f90 | 67 ++++++
8 files changed, 524 insertions(+), 24 deletions(-)
create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-entry-points.c
create mode 100644 gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp
create mode 100644 gdb/testsuite/gdb.fortran/entry-point.exp
create mode 100644 gdb/testsuite/gdb.fortran/entry-point.f90
--
2.25.1
Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928
More information about the Gdb-patches
mailing list