This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [patch] testcases for PRs 1291 and 1431
- From: Elena Zannoni <ezannoni at redhat dot com>
- To: "Kris Warkentin" <kewarken at qnx dot com>
- Cc: "Gdb-Patches at Sources dot Redhat dot Com" <gdb-patches at sources dot redhat dot com>
- Date: Fri, 31 Oct 2003 12:24:36 -0500
- Subject: Re: [patch] testcases for PRs 1291 and 1431
- References: <0f5701c39e46$f7c1abf0$0202040a@catdog>
Kris Warkentin writes:
> In the end I split them up like so. The 1291 testcase now only exhibits the
> one issue and the 1431 kfails the second.
>
Yes, just one thing, can you add a copyright notice to the .c files?
Just commit them with the change.
thanks
elena
> cheers,
>
> Kris
>
> 2003-10-29 Kris Warkentin <kewarken@qnx.com>
>
> * gdb.arch/gdb1291.c: New test file.
> * gdb.arch/gdb1291.exp: New test script.
> * gdb.arch/gdb1431.c: New test file.
> * gdb.arch/gdb1431.exp: New test script.
>
> ---gdb1291.c---
> void sub (void);
>
> main()
> {
> sub();
> }
>
> asm(".text\n"
> " .align 5\n"
> "sub:\n"
> " mov.l r14,@-r15\n"
> " mov.w .STACK2,r3\n"
> " sub r3,r15\n"
> " mov r15,r14\n"
> " mov.w .STACK2,r7\n"
> " add r7,r14\n"
> " mov r14,r15\n"
> " mov.l @r15+,r14\n"
> " rts\n"
> " nop\n"
> " .align 1\n"
> ".STACK2:\n"
> " .short 260\n");
>
> ---gdb1291.exp---
> # Copyright 2003 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 2 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, write to the Free Software
> # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
>
> # Please email any bugs, comments, and/or additions to this file to:
> # bug-gdb@gnu.org
>
> # This file is part of the gdb testsuite.
>
> # Tests for PR:1291. Ensure that backtrace works properly for stack
> # frames greater than 256 bytes.
>
> if $tracelevel {
> strace $tracelevel
> }
>
> # Test SH backtraces with >256 byte frame stack. (PR:1291)
>
> set prms_id 0
> set bug_id 0
>
> if ![istarget "sh-*-*"] then {
> verbose "Skipping SH backtrace tests."
> return
> }
>
> set testfile "gdb1291"
> set srcfile ${testfile}.c
> set binfile ${objdir}/${subdir}/${testfile}
> if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable
> {debug}] != "" } {
> gdb_suppress_entire_file "Testcase compile failed, so all tests in this
> file will automatically fail."
> }
>
> gdb_exit
> gdb_start
> gdb_reinitialize_dir $srcdir/$subdir
> gdb_load ${binfile}
>
> #
> # Run to `main' where we begin our tests.
> #
>
> if ![runto_main] then {
> gdb_suppress_tests
> }
>
> gdb_test "b sub" "Breakpoint 2*" "set breakpoint"
> gdb_test "c" "Breakpoint 2*" "get to sub"
> gdb_test "bt" "#0\[ \t\]*$hex \\(\\) at sh-bt.*\r\n#1\[ \t\]*$hex in main.*"
> \
> "backtrace in gdb1291"
>
> ---gdb1431.c---
> void sub1 (void);
> void sub2 (void);
>
> main()
> {
> sub1();
> sub2();
> }
>
> asm(".text\n"
> " .align 5\n"
> "sub1:\n"
> " mov.l r14,@-r15\n"
> " add #-128,r15\n"
> " add #-128,r15\n"
> " mov r15,r14\n"
> " mov.w .STACK1,r7\n"
> " add r7,r14\n"
> " mov r14,r15\n"
> " mov.l @r15+,r14\n"
> " rts\n"
> " nop\n"
> " .align 1\n"
> ".STACK1:\n"
> " .short 256\n");
>
> asm(".text\n"
> " .align 5\n"
> "sub2:\n"
> " mov.l r14,@-r15\n"
> " mov.w .STACK2,r3\n"
> " sub r3,r15\n"
> " mov r15,r14\n"
> " mov.w .STACK2,r7\n"
> " add r7,r14\n"
> " mov r14,r15\n"
> " mov.l @r15+,r14\n"
> " rts\n"
> " nop\n"
> " .align 1\n"
> ".STACK2:\n"
> " .short 260\n");
>
> ---gdb1431.exp---
> # Copyright 2003 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 2 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, write to the Free Software
> # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
>
> # Please email any bugs, comments, and/or additions to this file to:
> # bug-gdb@gnu.org
>
> # This file is part of the gdb testsuite.
>
> # Tests for PR:1431. Catch gdb not continuing to second function properly.
>
> if $tracelevel {
> strace $tracelevel
> }
>
> # Observe that the until command doesn't go all the way to sub2.
>
> set prms_id 0
> set bug_id 0
>
> if ![istarget "sh-*-*"] then {
> verbose "Skipping SH backtrace tests."
> return
> }
>
> set testfile "gdb1431"
> set srcfile ${testfile}.c
> set binfile ${objdir}/${subdir}/${testfile}
> if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable
> {debug}] != "" } {
> gdb_suppress_entire_file "Testcase compile failed, so all tests in this
> file will automatically fail."
> }
>
> gdb_exit
> gdb_start
> gdb_reinitialize_dir $srcdir/$subdir
> gdb_load ${binfile}
>
> #
> # Run to `main' where we begin our tests.
> #
>
> if ![runto_main] then {
> gdb_suppress_tests
> }
>
> gdb_test "u sub1" "sub1*" "get to sub1"
> gdb_test "bt" "#0\[ \t\]*$hex \\(\\) at sh-bt.*\r\n#1\[ \t\]*$hex in main.*"
> \
> "backtrace in gdb1291"
>
> kfail "gdb/1431" "u sub2"
> # This is what we would expect to be able to do:
> #gdb_test "u sub2" "sub2*" "get to sub2"
> #gdb_test "bt" "#0\[ \t\]*$hex \\(\\) at sh-bt.*\r\n#1\[ \t\]*$hex in
> main.*" \
> # "backtrace in gdb1291"