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