# Copyright 2011-2021 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . if { [skip_cplus_tests] } { continue } load_lib mi-support.exp set MIFLAGS "-i=mi" gdb_exit if [mi_gdb_start] { continue } standard_testfile .cc if [get_compiler_info "c++"] { return -1 } if {[gdb_compile $srcdir/$subdir/$srcfile $binfile executable {debug c++}] != ""} { untested "failed to compile" return -1 } # Test that children of derived classes are given the proper # path by -var-info-path-expression mi_gdb_load ${binfile} mi_runto C::testLocation mi_create_varobj "var1" "this" "create var for THIS" mi_list_varobj_children "var1" { {var1.A A 1 A} {var1.public public 1} } "list children of THIS" # We don't care what the result of -var-info-path-expression # as long as it can be used in the -data-evaluate-expression # that follows mi_gdb_test "-var-info-path-expression var1.A" \ "\\^done,path_expr=\".*\"" \ "-var-info-path-expression var1.A" # Extract the result of the -var-info-path-expression command # to use it in -data-evaluate-expression set cmd_output $expect_out(2,string) set path [lindex [split $cmd_output "\""] 1] verbose "var-info-path-expression returned $cmd_output" 2 verbose "Using $path for data-evaluate-expression" 2 mi_gdb_test "-data-evaluate-expression \"$path\"" \ "\\^done,value=\"\{a = 5\}\"" \ "-data-evaluate-expression $path" mi_gdb_exit return 0