Updated copyright notices for most files.
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.server / ext-attach.exp
CommitLineData
2d717e4f
DJ
1# This testcase is part of GDB, the GNU debugger.
2
0fb0cc75 3# Copyright 2007, 2009 Free Software Foundation, Inc.
2d717e4f
DJ
4
5# This program is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 3 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18# Test attaching to already-running programs using extended-remote.
19
20load_lib gdbserver-support.exp
21
22set testfile "ext-attach"
23set srcfile ${testfile}.c
24set binfile ${objdir}/${subdir}/${testfile}
25
26if { [skip_gdbserver_tests] } {
27 return 0
28}
29
30# On SPU, this test currently fails because "sleep" is not supported.
31if { [istarget "spu*-*-*"] } {
32 return 0
33}
34
35# We need to use TCL's exec to get the pid.
36if [is_remote target] then {
37 return 0
38}
39
40if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
41 untested ext-attach.exp
42 return -1
43}
44
45gdb_exit
46gdb_start
47gdb_load $binfile
48gdb_reinitialize_dir $srcdir/$subdir
49
50set target_exec [gdbserver_download]
51gdbserver_start_extended
52
53gdb_test "set remote exec-file $target_exec" "" "set remote exec-file"
54
55# Start the program running and then wait for a bit, to be sure
56# that it can be attached to.
57set testpid [eval exec $binfile &]
58exec sleep 2
59if { [istarget "*-*-cygwin*"] } {
60 # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
61 # different due to the way fork/exec works.
62 set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
63}
64
65gdb_test "attach $testpid" "Attached to.*" \
66 "attach to remote program 1"
67gdb_test "backtrace" ".*main.*" "backtrace 1"
68
69gdb_test "detach" "Detached from remote process\\."
70gdb_test "backtrace" "No stack\\." "backtrace with no program"
71
72gdb_test "attach $testpid" "Attached to.*" \
73 "attach to remote program 2"
74gdb_test "backtrace" ".*main.*" "backtrace 2"
75
76gdb_test "kill" "" "kill" "Kill the program being debugged.*" "y"
77gdb_test "monitor exit" ""
This page took 0.11509 seconds and 4 git commands to generate.