2013-04-24 Muhammad Bilal <mbilal@codesourcery.com>
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.base / valgrind-db-attach.exp
index 05540e78cba2f33a0a7c4538920ba2f4e36a6fd2..79c985f627222bb440d20a3aaed4e1b1be6b9613 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 2009 Free Software Foundation, Inc.
+# Copyright 2009-2013 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
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+if [is_remote target] {
+    # The test always runs locally.
+    return 0
+}
+
 set test valgrind-db-attach
 set srcfile $test.c
 set executable $test
@@ -41,6 +46,11 @@ pass $test
 # Declare GDB now as running.
 set gdb_spawn_id -1
 
+# GDB spawned by `valgrind --db-attach=yes' stops already after the startup is
+# executed, like with non-extended gdbserver.  It is also not correct to
+# run/attach the inferior.
+set use_gdb_stub 1
+
 set test "valgrind started"
 # The trailing '.' differs for different memcheck versions.
 gdb_test_multiple "" $test {
@@ -51,6 +61,10 @@ gdb_test_multiple "" $test {
        unsupported $test
        return -1
     }
+    -re "valgrind: wrong ELF executable class" {
+       unsupported $test
+       return -1
+    }
     -re "command not found" {
        # The spawn succeeded, but then valgrind was not found - e.g. if
        # we spawned SSH to a remote system.
@@ -61,8 +75,9 @@ gdb_test_multiple "" $test {
 
 set double_free [gdb_get_line_number "double-free"]
 
+set test "attach to debugger"
 gdb_test_multiple "" $test {
-    -re "Invalid free\\(\\) / delete / delete\\\[\\\]\r\n.*: main \\(${srcfile}:$double_free\\)\r\n.*---- Attach to debugger \\? --- \[^\r\n\]* ---- " {
+    -re "Invalid free\\(\\).*: main \\(${srcfile}:$double_free\\)\r\n.*---- Attach to debugger \\? --- \[^\r\n\]* ---- " {
        send_gdb "y\r"
     }
     -re "---- Attach to debugger \\? --- \[^\r\n\]* ---- " {
@@ -71,10 +86,13 @@ gdb_test_multiple "" $test {
     }
 }
 
-gdb_test "" "" "eat first prompt"
+gdb_test "" ".*" "eat first prompt"
 
 # Initialization from default_gdb_start.
 gdb_test_no_output "set height 0"
 gdb_test_no_output "set width 0"
 
 gdb_test "bt" "in main \\(.*\\) at .*${srcfile}:$double_free"
+
+# Explicitly kill the program so it doesn't dump core when we quit->detach.
+gdb_test "kill" "" "kill program" "Kill the program being debugged.*y or n. $" "y"
This page took 0.026997 seconds and 4 git commands to generate.