1*b725ae77Skettenis# Copyright (C) 1992, 1997 Free Software Foundation, Inc. 2e93f7393Sniklas 3e93f7393Sniklas# This program is free software; you can redistribute it and/or modify 4e93f7393Sniklas# it under the terms of the GNU General Public License as published by 5e93f7393Sniklas# the Free Software Foundation; either version 2 of the License, or 6e93f7393Sniklas# (at your option) any later version. 7e93f7393Sniklas# 8e93f7393Sniklas# This program is distributed in the hope that it will be useful, 9e93f7393Sniklas# but WITHOUT ANY WARRANTY; without even the implied warranty of 10e93f7393Sniklas# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11e93f7393Sniklas# GNU General Public License for more details. 12e93f7393Sniklas# 13e93f7393Sniklas# You should have received a copy of the GNU General Public License 14e93f7393Sniklas# along with this program; if not, write to the Free Software 15*b725ae77Skettenis# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 16e93f7393Sniklas 17e93f7393Sniklas# Please email any bugs, comments, and/or additions to this file to: 18e93f7393Sniklas# bug-gdb@prep.ai.mit.edu 19e93f7393Sniklas 20e93f7393Sniklas# This file was written by Fred Fish. (fnf@cygnus.com) 21e93f7393Sniklas 22e93f7393Sniklasif $tracelevel then { 23e93f7393Sniklas strace $tracelevel 24e93f7393Sniklas} 25e93f7393Sniklas 26e93f7393Sniklasset prms_id 0 27e93f7393Sniklasset bug_id 0 28e93f7393Sniklas 29e93f7393Sniklasproc test_convenience_variables {} { 30*b725ae77Skettenis global gdb_prompt 31e93f7393Sniklas 32*b725ae77Skettenis gdb_test "set \$foo = 101" "" \ 33e93f7393Sniklas "Set a new convenience variable" 34e93f7393Sniklas 35e93f7393Sniklas gdb_test "print \$foo" " = 101" \ 36e93f7393Sniklas "Print contents of new convenience variable" 37e93f7393Sniklas 38*b725ae77Skettenis gdb_test "set \$foo = 301" "" \ 39e93f7393Sniklas "Set convenience variable to a new value" 40e93f7393Sniklas 41e93f7393Sniklas gdb_test "print \$foo" " = 301" \ 42e93f7393Sniklas "Print new contents of convenience variable" 43e93f7393Sniklas 44*b725ae77Skettenis gdb_test "set \$_ = 11" "" \ 45e93f7393Sniklas "Set convenience variable \$_" 46e93f7393Sniklas 47e93f7393Sniklas gdb_test "print \$_" " = 11" \ 48e93f7393Sniklas "Print contents of convenience variable \$_" 49e93f7393Sniklas 50e93f7393Sniklas gdb_test "print \$foo + 10" " = 311" \ 51e93f7393Sniklas "Use convenience variable in arithmetic expression" 52e93f7393Sniklas 53e93f7393Sniklas gdb_test "print (\$foo = 32) + 4" " = 36" \ 54e93f7393Sniklas "Use convenience variable assignment in arithmetic expression" 55e93f7393Sniklas 56e93f7393Sniklas gdb_test "print \$bar" " = void" \ 57e93f7393Sniklas "Print contents of uninitialized convenience variable" 58e93f7393Sniklas} 59e93f7393Sniklas 60e93f7393Sniklasproc test_value_history {} { 61*b725ae77Skettenis global gdb_prompt 62e93f7393Sniklas 63e93f7393Sniklas gdb_test "print 101" "\\\$1 = 101" \ 64e93f7393Sniklas "Set value-history\[1\] using \$1" 65e93f7393Sniklas 66e93f7393Sniklas gdb_test "print 102" "\\\$2 = 102" \ 67e93f7393Sniklas "Set value-history\[2\] using \$2" 68e93f7393Sniklas 69e93f7393Sniklas gdb_test "print 103" "\\\$3 = 103" \ 70e93f7393Sniklas "Set value-history\[3\] using \$3" 71e93f7393Sniklas 72e93f7393Sniklas gdb_test "print \$\$" "\\\$4 = 102" \ 73e93f7393Sniklas "Print value-history\[MAX-1\] using inplicit index \$\$" 74e93f7393Sniklas 75e93f7393Sniklas gdb_test "print \$\$" "\\\$5 = 103" \ 76e93f7393Sniklas "Print value-history\[MAX-1\] again using implicit index \$\$" 77e93f7393Sniklas 78e93f7393Sniklas gdb_test "print \$" "\\\$6 = 103" \ 79e93f7393Sniklas "Print value-history\[MAX\] using implicit index \$" 80e93f7393Sniklas 81e93f7393Sniklas gdb_test "print \$\$2" "\\\$7 = 102" \ 82e93f7393Sniklas "Print value-history\[MAX-2\] using explicit index \$\$2" 83e93f7393Sniklas 84e93f7393Sniklas gdb_test "print \$0" "\\\$8 = 102" \ 85e93f7393Sniklas "Print value-history\[MAX\] using explicit index \$0" 86e93f7393Sniklas 87*b725ae77Skettenis gdb_test "print 108" "\\\$9 = 108" 88e93f7393Sniklas 89e93f7393Sniklas gdb_test "print \$\$0" "\\\$10 = 108" \ 90e93f7393Sniklas "Print value-history\[MAX\] using explicit index \$\$0" 91e93f7393Sniklas 92e93f7393Sniklas gdb_test "print \$1" "\\\$11 = 101" \ 93e93f7393Sniklas "Print value-history\[1\] using explicit index \$1" 94e93f7393Sniklas 95e93f7393Sniklas gdb_test "print \$2" "\\\$12 = 102" \ 96e93f7393Sniklas "Print value-history\[2\] using explicit index \$2" 97e93f7393Sniklas 98e93f7393Sniklas gdb_test "print \$3" "\\\$13 = 103" \ 99e93f7393Sniklas "Print value-history\[3\] using explicit index \$3" 100e93f7393Sniklas 101e93f7393Sniklas gdb_test "print \$-3" "\\\$14 = 100" \ 102e93f7393Sniklas "Print (value-history\[MAX\] - 3) using implicit index \$" 103e93f7393Sniklas 104e93f7393Sniklas gdb_test "print \$1 + 3" "\\\$15 = 104" \ 105e93f7393Sniklas "Use value-history element in arithmetic expression" 106e93f7393Sniklas} 107e93f7393Sniklas 108e93f7393Sniklas# Start with a fresh gdb. 109e93f7393Sniklas 110e93f7393Sniklasgdb_exit 111e93f7393Sniklasgdb_start 112e93f7393Sniklasgdb_reinitialize_dir $srcdir/$subdir 113e93f7393Sniklas 114*b725ae77Skettenissend_gdb "set print sevenbit-strings\n" ; gdb_expect -re ".*$gdb_prompt $" 115e93f7393Sniklas 116e93f7393Sniklastest_value_history 117e93f7393Sniklastest_convenience_variables 118