unc_arr_ptr_in_var_rec.exp revision 1.7
1# Copyright 2012-2017 Free Software Foundation, Inc. 2# 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. 7# 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. 12# 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/>. 15 16load_lib "ada.exp" 17 18standard_ada_testfile foo 19 20if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug]] != "" } { 21 return -1 22} 23 24clean_restart ${testfile} 25 26set bp_location [gdb_get_line_number "STOP1" ${testdir}/foo.adb] 27runto "foo.adb:$bp_location" 28 29# Print My_Object and My_Object.Ptr when Ptr is null... 30 31gdb_test "print my_object" \ 32 "= \\(n => 3, ptr => 0x0, data => \\(3, 5, 8\\)\\)" \ 33 "print My_Object with null Ptr" 34 35gdb_test "print my_object.ptr" \ 36 "= \\(foo.table_access\\) 0x0" \ 37 "print My_Object.Ptr when null" 38 39# Same for My_P_Object... 40 41gdb_test "print my_p_object" \ 42 "= \\(n => 3, ptr => 0x0, data => \\(3, 5, 8\\)\\)" \ 43 "print My_P_Object with null Ptr" 44 45gdb_test "print my_p_object.ptr" \ 46 "\\(foo.p_table_access\\) 0x0" \ 47 "print My_P_Object.Ptr when null" 48 49# Continue until the Ptr component of both objects get allocated. 50 51set bp_location [gdb_get_line_number "STOP2" ${testdir}/foo.adb] 52 53gdb_breakpoint "foo.adb:$bp_location" 54 55gdb_test "continue" \ 56 "Breakpoint $decimal, foo \\(\\) at .*foo.adb:$decimal.*" \ 57 "continue to STOP2" 58 59# Inspect My_Object again... 60 61gdb_test "print my_object" \ 62 "= \\(n => 3, ptr => $hex, data => \\(3, 5, 8\\)\\)" \ 63 "print my_object after setting Ptr" 64 65gdb_test "print my_object.ptr" \ 66 "\\(foo.table_access\\) $hex" \ 67 "print My_P_Object.Ptr when no longer null" 68 69gdb_test "print my_object.ptr.all" \ 70 "= \\(13, 21, 34\\)" 71 72# Same with My_P_Object... 73 74gdb_test "print my_p_object" \ 75 "= \\(n => 3, ptr => $hex, data => \\(3, 5, 8\\)\\)" \ 76 "print my_p_object after setting Ptr" 77 78gdb_test "print my_p_object.ptr" \ 79 "= \\(foo.p_table_access\\) $hex" \ 80 "print My_P_Object.Ptr when no longer null" 81 82gdb_test "print my_p_object.ptr.all" \ 83 "\\(13, 21, 34\\)" 84 85