OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-7.2/] [gdb/] [testsuite/] [gdb.base/] [gdbvars.exp] - Rev 414

Go to most recent revision | Compare with Previous | Blame | View Log

# Copyright (C) 1992, 1997, 2007, 2008, 2009, 2010
# 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 <http://www.gnu.org/licenses/>.

# This file was written by Fred Fish. (fnf@cygnus.com)

if $tracelevel then {
        strace $tracelevel
}


set testfile "gdbvars"
set srcfile  ${testfile}.c
set binfile  ${objdir}/${subdir}/${testfile}

if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
    untested gdbvars.exp
    return -1
}

proc test_convenience_variables {} {
    global gdb_prompt

    gdb_test_no_output "set \$foo = 101" \
        "Set a new convenience variable"

    gdb_test "print \$foo"              " = 101" \
        "Print contents of new convenience variable"

    gdb_test_no_output "set \$foo = 301" \
        "Set convenience variable to a new value"

    gdb_test "print \$foo"              " = 301" \
        "Print new contents of convenience variable"

    gdb_test_no_output "set \$_ = 11" \
        "Set convenience variable \$_"

    gdb_test "print \$_"                " = 11" \
        "Print contents of convenience variable \$_"

    gdb_test "print \$foo + 10" " = 311" \
        "Use convenience variable in arithmetic expression"

    gdb_test "print (\$foo = 32) + 4"   " = 36" \
        "Use convenience variable assignment in arithmetic expression"

    gdb_test "print \$bar"              " = void" \
        "Print contents of uninitialized convenience variable"
}

proc test_value_history {} {
    global gdb_prompt

    gdb_test "print 101"        "\\\$1 = 101" \
        "Set value-history\[1\] using \$1"

    gdb_test "print 102"        "\\\$2 = 102" \
        "Set value-history\[2\] using \$2"

    gdb_test "print 103"        "\\\$3 = 103" \
        "Set value-history\[3\] using \$3"

    gdb_test "print \$\$"       "\\\$4 = 102" \
        "Print value-history\[MAX-1\] using inplicit index \$\$"

    gdb_test "print \$\$"       "\\\$5 = 103" \
        "Print value-history\[MAX-1\] again using implicit index \$\$"

    gdb_test "print \$" "\\\$6 = 103" \
        "Print value-history\[MAX\] using implicit index \$"

    gdb_test "print \$\$2"      "\\\$7 = 102" \
        "Print value-history\[MAX-2\] using explicit index \$\$2"

    gdb_test "print \$0"        "\\\$8 = 102" \
        "Print value-history\[MAX\] using explicit index \$0"

    gdb_test "print 108"        "\\\$9 = 108"

    gdb_test "print \$\$0"      "\\\$10 = 108" \
        "Print value-history\[MAX\] using explicit index \$\$0"

    gdb_test "print \$1"        "\\\$11 = 101" \
        "Print value-history\[1\] using explicit index \$1"

    gdb_test "print \$2"        "\\\$12 = 102" \
        "Print value-history\[2\] using explicit index \$2"

    gdb_test "print \$3"        "\\\$13 = 103" \
        "Print value-history\[3\] using explicit index \$3"

    gdb_test "print \$-3"       "\\\$14 = 100" \
        "Print (value-history\[MAX\] - 3) using implicit index \$"

    gdb_test "print \$1 + 3"    "\\\$15 = 104" \
        "Use value-history element in arithmetic expression"
}

proc test_with_program {} {
    global hex
    gdb_test_no_output "set \$prog_var = p" \
        "Set a new convenience variable to a program variable"
    gdb_test "print /x \$prog_var" " = $hex" \
        "Print contents of new convenience variable of program variable"
}

# Start with a fresh gdb.

gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}

gdb_test_no_output "set print sevenbit-strings"

test_value_history
test_convenience_variables
test_with_program

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.