Index: gdb/testsuite/gdb.base/attach-twice.exp |
diff --git a/gdb/testsuite/gdb.base/attach-twice.exp b/gdb/testsuite/gdb.base/attach-twice.exp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d4e1a6c41b69b624f8c82713b63c84def9e309f7 |
--- /dev/null |
+++ b/gdb/testsuite/gdb.base/attach-twice.exp |
@@ -0,0 +1,51 @@ |
+# Copyright (C) 2012 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 <http://www.gnu.org/licenses/>. |
+ |
+# Manipulation with PID on target is not supported. |
+if [is_remote target] then { |
+ return 0 |
+} |
+ |
+set testfile attach-twice |
+set executable ${testfile} |
+set binfile ${objdir}/${subdir}/${executable} |
+ |
+if { [prepare_for_testing ${testfile}.exp $executable] } { |
+ return -1 |
+} |
+ |
+set testpid [eval exec $binfile &] |
+exec sleep 2 |
+ |
+set parentpid 0 |
+ |
+set test "attach" |
+gdb_test_multiple "attach $testpid" $test { |
+ -re "Attaching to program: \[^\r\n\]*, process $testpid\r\n.*warning: process $testpid is already traced by process (\[0-9\]+)\r\n.*ptrace: Operation not permitted\\.\r\n$gdb_prompt $" { |
+ set parentpid $expect_out(1,string) |
+ pass $test |
+ } |
+ -re "Attaching to program: \[^\r\n\]*, process $testpid\r\n.*ptrace: Operation not permitted\\.\r\n$gdb_prompt $" { |
+ fail $test |
+ } |
+ -re "\r\n$gdb_prompt $" { |
+ xfail $test |
+ } |
+} |
+ |
+if {$parentpid != 0} { |
+ eval exec kill -9 $parentpid |
+} |
+eval exec kill -9 $testpid |