1# Copyright (C) 2012-2020 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 16# This file is part of the GDB testsuite. 17# It tests the mechanism exposing c++ values to Guile. 18 19load_lib gdb-guile.exp 20 21if { [skip_cplus_tests] } { continue } 22 23standard_testfile .cc 24 25if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug c++}]} { 26 return 27} 28 29# Skip all tests if Guile scripting is not enabled. 30if { [skip_guile_tests] } { continue } 31 32if ![gdb_guile_runto_main] { 33 return 34} 35 36gdb_breakpoint [gdb_get_line_number "Break here."] 37gdb_continue_to_breakpoint "Break here" ".*Break here.*" 38 39gdb_test "gu (print (value-type (parse-and-eval \"a\")))" \ 40 "= const A &" 41gdb_test "gu (print (value-type (value-referenced-value (parse-and-eval \"a\"))))" \ 42 "= const A" 43gdb_test "gu (print (value-type (parse-and-eval \"int_ref\")))" \ 44 "= int &" 45gdb_test "gu (print (value-type (value-referenced-value (parse-and-eval \"int_ref\"))))" \ 46 "= int" 47gdb_test "gu (print (value-referenced-value (parse-and-eval \"int_ref\")))" \ 48 "= 10" 49 50gdb_test "gu (print (value-type (value-dereference (parse-and-eval \"int_ptr_ref\"))))" \ 51 "= int" 52gdb_test "gu (print (value-type (value-referenced-value (parse-and-eval \"int_ptr_ref\"))))" \ 53 "= int_ptr" 54gdb_test "gu (print (value-dereference (value-referenced-value (parse-and-eval \"int_ptr_ref\"))))" \ 55 "= 10" 56gdb_test "gu (print (value-referenced-value (value-referenced-value (parse-and-eval \"int_ptr_ref\"))))" \ 57 "= 10" 58