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

Subversion Repositories openrisc

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/tags/gnu-src/gdb-7.2/gdb-7.2-or32-1.0rc3/gdb/testsuite/gdb.multi
    from Rev 330 to Rev 513
    Reverse comparison

Rev 330 → Rev 513

/Makefile.in
0,0 → 1,14
VPATH = @srcdir@
srcdir = @srcdir@
 
EXECUTABLES = hello hangout goodbye bkpt-multi-exec crashme
 
all info install-info dvi install uninstall installcheck check:
@echo "Nothing to be done for $@..."
 
clean mostlyclean:
-rm -f *~ *.o *.ci
-rm -f core $(EXECUTABLES)
 
distclean maintainer-clean realclean: clean
-rm -f Makefile config.status config.log
/crashme.c
0,0 → 1,12
#include <stdlib.h>
#include <stdio.h>
 
int
main (int argc, char **argv)
{
int *foo = NULL;
 
printf ("Oh no, a bug!\n"); /* set breakpoint here */
 
return *foo;
}
crashme.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: hello.c =================================================================== --- hello.c (nonexistent) +++ hello.c (revision 513) @@ -0,0 +1,46 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 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 . */ + +short hglob = 1; + +short glob = 92; + +int commonfun() { bar(); } /* from hello */ + +bar() +{ + if (glob == 0) + exit(1); +} + +hello(int x) +{ + x *= 2; + return x + 45; +} + +main() +{ + int tmpx; + + bar(); + tmpx = hello(glob); + commonfun(); + glob = tmpx; + commonfun(); +} +
hello.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: base.exp =================================================================== --- base.exp (nonexistent) +++ base.exp (revision 513) @@ -0,0 +1,104 @@ +# Copyright 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 . + +# Test multi-exec / multi-process features that work for all configurations, +# even ones that cannot run multiple processes simultaneously. + +set testfile "base" + +set exec1 "hello" +set srcfile1 ${exec1}.c +set binfile1 ${objdir}/${subdir}/${exec1} + +set exec2 "hangout" +set srcfile2 ${exec2}.c +set binfile2 ${objdir}/${subdir}/${exec2} + +set exec3 "goodbye" +set srcfile3 ${exec3}.c +set binfile3 ${objdir}/${subdir}/${exec3} + +if { [prepare_for_testing ${testfile}.exp ${exec1} "${srcfile1}" {debug nowarnings}] } { + return -1 +} + +if { [prepare_for_testing ${testfile}.exp ${exec2} "${srcfile2}" {debug nowarnings}] } { + return -1 +} + +if { [prepare_for_testing ${testfile}.exp ${exec3} "${srcfile3}" {debug nowarnings}] } { + return -1 +} + +clean_restart ${exec1} + +# Add an empty inferior space, switch to it, and load a main +# executable into it. +gdb_test "add-inferior" "Added inferior 2.*" "add empty inferior 2" +gdb_test "inferior 2" "Switching to inferior 2.*" "switch to inferior 2" +gdb_test "file ${binfile2}" ".*" "load ${exec2} file in inferior 2" + +# Add a new inferior space and load a main executable into it in one +# command. +gdb_test "add-inferior -exec ${binfile3}" \ + "Added inferior 3.*" \ + "add inferior 3 with -exec ${exec3}" + +# Check that we have multiple spaces. + +gdb_test "info inferiors" \ + "Executable.*${exec3}.*${exec2}.*${exec1}.*" + +# Test that we have multiple symbol tables. + +gdb_test "inferior 1" ".*" "switch to inferior 1" +gdb_test "info functions commonfun" \ + "${srcfile1}.*" \ + "'info functions commonfun' in inferior 1" + +gdb_test "inferior 3" ".*" "switch to inferior 3" +gdb_test "info functions commonfun" \ + "${srcfile3}.*" \ + "'info functions commonfun' in inferior 3" + +gdb_test "inferior 1" ".*" "switch back to inferior 1" + +gdb_test_no_output "set listsize 1" + +gdb_test "list commonfun" "from hello.*" "list commonfun in hello" + +gdb_test "print hglob" "1" + +gdb_test "print glob" "92" "print glob (${exec1})" + + +gdb_test "inferior 3" ".*" "switch to inferior 3 to print globals" + +gdb_test "print gglob" "2" + +gdb_test "print glob" "45" "print glob (${exec3})" + +gdb_test "list commonfun" "from goodbye.*" "list commonfun in goodbye" + + +# Let's run the hello program. +gdb_test "inferior 1" ".*" "switch to inferior 1 to run it" + +if { ![runto_main] } then { + return -1 +} + +gdb_test "break hello" ".*" +gdb_test "continue" "Breakpoint \[0-9\].*, hello.*" Index: bkpt-multi-exec.exp =================================================================== --- bkpt-multi-exec.exp (nonexistent) +++ bkpt-multi-exec.exp (revision 513) @@ -0,0 +1,80 @@ +# Copyright 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 . + +if { [is_remote target] || ![isnative] } then { + continue +} + +set testfile "bkpt-multi-exec" + +set exec1 "bkpt-multi-exec" +set srcfile1 ${exec1}.c +set binfile1 ${objdir}/${subdir}/${exec1} + +set exec2 "crashme" +set srcfile2 ${exec2}.c +set binfile2 ${objdir}/${subdir}/${exec2} + +if { [prepare_for_testing ${testfile}.exp ${exec1} "${srcfile1}" {debug nowarnings}] } { + return -1 +} + +if { [prepare_for_testing ${testfile}.exp ${exec2} "${srcfile2}" {debug nowarnings}] } { + return -1 +} +# Until "catch exec" is implemented on other targets... +# +if {![istarget "hppa*-hp-hpux*"] && ![istarget "*-linux*"]} then { + continue +} + +# Start with a fresh gdb + +clean_restart ${exec1} + +# Start the program running, and stop at main. +# +if ![runto_main] then { + perror "Couldn't run ${binfile1}" + return +} + +delete_breakpoints + +# continuing should exec and trigger the bug +gdb_test "continue" "SIGSEGV.*" + +# Start over, but this time, set a breakpoint before the app crashes. + +clean_restart ${exec1} + +gdb_test "add-inferior -exec ${binfile2}" \ + "Added inferior 2.*" \ + "add inferior 2 with -exec ${exec2}" + +set bp_location [gdb_get_line_number "set breakpoint here" ${srcfile2}] + +gdb_test "inferior 2" +gdb_test "break ${srcfile2}:${bp_location}" ".*" + +# Start the program running, and stop at main. +# +gdb_test "inferior 1" + +# Now run to the breakpoint. This should cross the exec, and stop at +# the breakpoint before the crash. +gdb_test "run" "${srcfile2}:${bp_location}.*set breakpoint here.*" + +return 0 Index: hangout.c =================================================================== --- hangout.c (nonexistent) +++ hangout.c (revision 513) @@ -0,0 +1,26 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 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 . */ + +main(int argc, char *argv[]) +{ + int i; + + for (i = 0; i < argc; ++i) + { + printf("Arg %d is %s\n", i, argv[i]); + } +}
hangout.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: goodbye.c =================================================================== --- goodbye.c (nonexistent) +++ goodbye.c (revision 513) @@ -0,0 +1,62 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 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 . */ + +int gglob = 2; + +int glob = 45; + +int verylongfun() +{ + glob += 2; + glob *= 2; + glob += 3; + glob *= 3; + glob += 4; + glob *= 4; + glob += 5; + glob *= 5; + glob += 6; + glob *= 6; + glob += 7; + glob *= 7; + glob += 8; + glob *= 8; + glob += 9; + glob *= 9; +} + +main() { + mailand(); + foo(glob); + verylongfun(); + goodbye(); +} + +foo(int x) { + return x + 92; +} + +mailand() +{ + glob = 46; +} + +void commonfun() { mailand(); } /* from goodbye */ + +goodbye() { + ++glob; +}
goodbye.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: bkpt-multi-exec.c =================================================================== --- bkpt-multi-exec.c (nonexistent) +++ bkpt-multi-exec.c (revision 513) @@ -0,0 +1,13 @@ +#include +#include +#include +#include + +int main (void) +{ + printf ("foll-exec is about to execl(crashme)...\n"); + + execl ("gdb.multi/crashme", + "gdb.multi/crashme", + (char *)0); +}
bkpt-multi-exec.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property

powered by: WebSVN 2.1.0

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