1 # Copyright
2015-2019 Free Software Foundation
, Inc.
3 # This
program is free software
; you can redistribute it and
/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation
; either version
3 of the License
, or
6 #
(at your option
) any later version.
8 # This
program is distributed in the hope that it will be useful
,
9 # but WITHOUT
ANY WARRANTY
; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the
11 # GNU General Public License
for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this
program.
If not
, see
<http
://www.gnu.org
/licenses
/>.
18 standard_ada_testfile foo
20 if {[gdb_compile_ada
"${srcfile}" "${binfile}" executable [list debug]] != "" } {
24 clean_restart $
{testfile
}
26 set bp_location
[gdb_get_line_number
"BREAK" ${testdir}/foo.adb]
27 runto
"foo.adb:$bp_location"
29 # Pck.A is an array that embeds elements with
variable size so compilers will
30 # emit DWARF attributes such as DW_AT_byte_stride to tell GDB how to
fetch
31 # individual elements. Array stride is also a way to
describe packed arrays
:
32 # make sure we
do not
consider Pck.A as a packed array.
33 gdb_test
"ptype pck.a" "array \\(1 \\.\\. 2\\) of pck\\.r_type"
35 # Make sure this also works with a type from a fully evaluated value. During
36 # evaluation
, dynamic types can be
"resolved" so GDB internals could "forget"
37 # that elements have
variable size. Fortunately
, type resolution of array
38 # elements happens only when processing individual elements
(i.e. the resolved
39 # array type is still associated to the dynamic element type
), so the following
40 # is supposed to work.
41 gdb_test
"print pck.a" \
42 "= \\(\\(l => 0, s => \"\"\\), \\(l => 2, s => \"ab\"\\)\\)"
44 "array \\(1 \\.\\. 2\\) of pck\\.r_type"