This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[V2 00/23] Fortran dynamic array support
- From: Keven Boell <keven dot boell at intel dot com>
- To: gdb-patches at sourceware dot org
- Cc: keven dot boell at intel dot com, sanimir dot agovic at intel dot com
- Date: Fri, 11 Jul 2014 11:21:12 +0200
- Subject: [V2 00/23] Fortran dynamic array support
- Authentication-results: sourceware.org; auth=none
This patch series add Fortran dynamic array support to gdb.
It allows the user to evaluate a dynamic array like an ordinary static array
e.g. print its elements instead of printing the pointer to the array.
In addition the size of a dynamic array can be retrieved with gdbs builtin
sizeof operator. Furthermore this series add support for Fortran stride support.
1| integer, allocatable :: ary(:)
2| allocate(ary(5))
3| ary(:) = 42
(gdb) print ary
$1 = (42, 42, 42, 42, 42)
(gdb) print sizeof (ary)
$2 = 20
(gdb) ptype ary
type = integer(kind=4) (5)
This series is a follow up for the following C99 variable length array
support series:
https://sourceware.org/ml/gdb-patches/2013-12/msg00625.html
Patch series V2 mainly addresses issues/comments given for V1.
Keven Boell (23):
dwarf: add dwarf3 DW_OP_push_object_address opcode
dwarf: add DW_AT_data_location support
vla: introduce allocated/associated flags
vla: make dynamic fortran arrays functional.
vla: make field selection work with vla
vla: reconstruct value to compute bounds of target type
vla: use value constructor instead of raw-buffer manipulation
vla: get dynamic array corner cases to work
vla: changed string length semantic.
vla: get Fortran dynamic strings working.
vla: add stride support to fortran arrays.
vla: add NEWS entry for dynamic array support
test: basic tests for dynamic array evaluations in Fortran.
test: evaluate dynamic arrays using Fortran primitives.
test: dynamic arrays passed to subroutines.
test: correct ptype of dynamic arrays in Fortran.
test: evaluating allocation/association status
test: dynamic arrays passed to functions.
test: accessing dynamic array history values.
test: dynamic string evaluations.
test: basic MI test for the dynamic array support.
test: test sizeof for dynamic fortran arrays.
test: stride support for dynamic arrays.
gdb/NEWS | 4 +
gdb/c-valprint.c | 11 +-
gdb/dwarf2expr.c | 6 +
gdb/dwarf2expr.h | 4 -
gdb/dwarf2loc.c | 64 +++++-
gdb/dwarf2loc.h | 7 +
gdb/dwarf2read.c | 190 +++++++++++++++--
gdb/f-typeprint.c | 62 ++++--
gdb/f-valprint.c | 124 ++++-------
gdb/gdbtypes.c | 217 +++++++++++++++++---
gdb/gdbtypes.h | 58 ++++++
gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp | 65 ++++++
gdb/testsuite/gdb.fortran/vla-datatypes.exp | 82 ++++++++
gdb/testsuite/gdb.fortran/vla-datatypes.f90 | 51 +++++
gdb/testsuite/gdb.fortran/vla-func.exp | 61 ++++++
gdb/testsuite/gdb.fortran/vla-func.f90 | 71 +++++++
gdb/testsuite/gdb.fortran/vla-history.exp | 62 ++++++
gdb/testsuite/gdb.fortran/vla-ptype-sub.exp | 87 ++++++++
gdb/testsuite/gdb.fortran/vla-ptype.exp | 96 +++++++++
gdb/testsuite/gdb.fortran/vla-sizeof.exp | 46 +++++
gdb/testsuite/gdb.fortran/vla-stride.exp | 44 ++++
gdb/testsuite/gdb.fortran/vla-stride.f90 | 30 +++
gdb/testsuite/gdb.fortran/vla-strings.exp | 104 ++++++++++
gdb/testsuite/gdb.fortran/vla-strings.f90 | 40 ++++
gdb/testsuite/gdb.fortran/vla-sub.f90 | 82 ++++++++
.../gdb.fortran/vla-value-sub-arbitrary.exp | 35 ++++
gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp | 49 +++++
gdb/testsuite/gdb.fortran/vla-value-sub.exp | 90 ++++++++
gdb/testsuite/gdb.fortran/vla-value.exp | 148 +++++++++++++
gdb/testsuite/gdb.fortran/vla.f90 | 56 +++++
gdb/testsuite/gdb.mi/mi-vla-fortran.exp | 182 ++++++++++++++++
gdb/testsuite/gdb.mi/vla.f90 | 42 ++++
gdb/typeprint.c | 7 +
gdb/valarith.c | 23 ++-
gdb/valprint.c | 40 ++++
gdb/valprint.h | 4 +
gdb/value.c | 52 ++++-
37 files changed, 2233 insertions(+), 163 deletions(-)
create mode 100644 gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-datatypes.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-datatypes.f90
create mode 100644 gdb/testsuite/gdb.fortran/vla-func.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-func.f90
create mode 100644 gdb/testsuite/gdb.fortran/vla-history.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-ptype.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-sizeof.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-stride.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-stride.f90
create mode 100644 gdb/testsuite/gdb.fortran/vla-strings.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-strings.f90
create mode 100644 gdb/testsuite/gdb.fortran/vla-sub.f90
create mode 100644 gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-value-sub.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla-value.exp
create mode 100644 gdb/testsuite/gdb.fortran/vla.f90
create mode 100644 gdb/testsuite/gdb.mi/mi-vla-fortran.exp
create mode 100644 gdb/testsuite/gdb.mi/vla.f90
--
1.7.9.5