-# 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
# 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 {
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.
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\]* ---- " {
}
}
-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"