aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.hp/attach2.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.hp/attach2.exp')
-rw-r--r--gdb/testsuite/gdb.hp/attach2.exp263
1 files changed, 0 insertions, 263 deletions
diff --git a/gdb/testsuite/gdb.hp/attach2.exp b/gdb/testsuite/gdb.hp/attach2.exp
deleted file mode 100644
index e298ee9..0000000
--- a/gdb/testsuite/gdb.hp/attach2.exp
+++ /dev/null
@@ -1,263 +0,0 @@
-# attach.exp -- Expect script to test attaching to a threaded pgm
-# Copyright (C) 1992 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 2 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, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-# Please email any bugs, comments, and/or additions to this file to:
-# bug-gdb@prep.ai.mit.edu
-
-# use this to debug:
-#
-#log_user 1
-
-# Temporarily comment out - hanging
-#return 0
-
-if $tracelevel then {
- strace $tracelevel
-}
-
-# Thread stuff is _slow_; prepare for long waits.
-#
-# Further, this test has some "null" lines designed
-# to consume output from gdb that was too late to be
-# matched (sequence is "gdb_test" sends; timeout and
-# on to next send; result finally comes in; mismatch).
-#
-# The null command is 'gdb_test "p \$pc" ".*" ""'
-# NOTE: this command undoes any up/down stuff!
-#
-proc pre_timeout { how_long } {
- global timeout
-
- set timeout [expr "$timeout + $how_long"]
-}
-
-proc post_timeout {} {
- global timeout
- global oldtimeout
-
- set timeout $oldtimeout
- gdb_test "p \$pc" ".*" ""
-}
-
-if { ![istarget "hppa*-*-hpux10.30"] && ![istarget "hppa*-*-hpux11.*"] } {
- verbose "HPUX thread test ignored for non-hppa or pre-HP/UX-10.30 targets."
- return 0
-}
-
-# We used to wait 5 seconds , but tiamat is faster than
-# hydra...or is it that the OS allocates time differently(?).
-#
-set delay 5
-if { ![istarget "hppa*-*-hpux11.*"] } {
- set delay 45
-}
-
-set testfile quicksort
-set srcfile ${srcdir}/${subdir}/${testfile}.c
-set binfile ${objdir}/${subdir}/${testfile}
-
-if [get_compiler_info ${binfile}] {
- return -1
-}
-
-set oldtimeout $timeout
-#set timeout [expr "$timeout + 100"]
-set oldverbose $verbose
-#set verbose 40
-
-# To build the executable we need to link against the thread library.
-#
-# cc -Ae -g -o quicksort -lpthread quicksort.c
-#
-#remote_exec build "${srcfile} -Ae -g -lpthread -o ${binfile}"
-#gdb_compile "${srcfile} -Ae -g -lpthread -o ${binfile}"
-
-if {$gcc_compiled == 0} {
- set additional_flags "additional_flags=-Ae"
-} else {
- set additional_flags ""
-}
-
-if { [gdb_compile "${srcdir}/${subdir}/${testfile}.c" "${binfile}.o" object [list debug $additional_flags]] != "" } {
- gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
-}
-remote_exec build "ld /usr/ccs/lib/crt0.o ${binfile}.o -lcl -lpthread -lc /opt/langtools/lib/end.o -o ${binfile}"
-
-
-gdb_exit
-gdb_start
-gdb_reinitialize_dir $srcdir/$subdir
-
-# Start the application running and get its pid.
-# Then we wait for it to get started and attach.
-#
-set testpid [eval exec $binfile 1 &]
-exec sleep $delay
-
-# Now attach to the file.
-#
-pre_timeout 100
-gdb_test "attach $testpid" ".*Attaching to process.*Reading symbols from.*done.*" "attach to target"
-post_timeout
-
-# Wait for things to quiesce.
-#
-exec sleep 0
-
-send_gdb "bt\n"
-
-set do_return 0
-set do_go_to_118 0
-pre_timeout 400
-gdb_expect {
- -re ".*sleep.*work_init.*main.*$gdb_prompt $" {
- pass "at expected location"
- }
- -re ".*drand48.*$gdb_prompt $" {
- set do_go_to_118 1
- }
- -re ".*pthread_mutex_lock.*$gdb_prompt $" {
- set do_go_to_118 1
- }
- -re ".*pthread_mutex_unlock.*$gdb_prompt $" {
- set do_go_to_118 1
- }
- -re ".*main.*$gdb_prompt $" {
- set do_go_to_118 1
- }
- -re ".*No stack.*$gdb_prompt $" {
- fail "Failed attach, change wait amount down, rest would fail"
- set do_return 1
- }
- -re ".*$gdb_prompt $" {
- # Who knows?
- #
- set do_go_to_118 1
- }
- timeout {
- set do_return 1
- fail "timeout on bt, avoiding rest of test"
- }
-}
-post_timeout
-
-# Too late; just give up.
-#
-if { $do_return } {
- set timeout $oldtimeout
- set verbose $oldverbose
- return 0
-}
-
-# Maybe too early--set a temp break and continue.
-# We have to set this on both paths, so that we can
-# know what numbers breakpoints will be.
-#
-gdb_test "tb 118" ".*Breakpoint 1.*118.*" ""
-if { $do_go_to_118 } {
- pre_timeout 100
- send_gdb "c\n"
- gdb_expect {
- -re ".*at.*118.*118.*$gdb_prompt $" {
- # Ok, just keep going
- }
- -re ".*Program exited.*$gdb_prompt $" {
- fail "Attached too late, set wait amount downwards"
- set timeout $oldtimeout
- set verbose $oldverbose
- return 0
- }
- -re ".*$gdb_prompt $" {
- fail "Unexpected result on attach"
- set timeout $oldtimeout
- set verbose $oldverbose
- return 0
- }
- timeout {
- fail "timeout on continue "
- }
- }
- post_timeout
-}
-
-# Look at the threads.
-#
-pre_timeout 100
-gdb_test "info thread" ".*7.*6.*5.*4.*3.*2.*\\\* 1.*thread.*" "first info thread"
-post_timeout
-
-# We expect to be inside the "sleep" call, so check that.
-#
-if { [expr "!$do_go_to_118"] } {
- gdb_test "up" ".*\#1.*nanosleep.*" "up 1"
- gdb_test "up" ".*\#2.*sleep.*" "up 2"
- pre_timeout 100
- gdb_test "up" ".*\#3.*work_init.*$testfile.*c:118.*sleep.*" "up 3"
- post_timeout
-} else {
- send_user "Skipped three tests\n"
-}
-
-# Get out of that call.
-#
-gdb_test "b 120" ".*Breakpoint 2.*120.*" "set bp"
-pre_timeout 100
-gdb_test "c" ".*Breakpoint 2.*at.*120.*" "hit bp"
-post_timeout
-
-# Look at the threads.
-#
-pre_timeout 100
-gdb_test "info thread" ".*7.*6.*5.*4.*3.*2.*1.*thread.*$testfile.*c*120.*" "2nd info thread"
-post_timeout
-
-# Do some more stuff, to make sure we can
-#
-gdb_test "thread 3" ".*Switching to.*thread.*ksleep.*" "switch thread"
-
-gdb_test "up" ".*_lwp_cond_timedwait.*" "up 5"
-gdb_test "up" ".*pthread_cond_wait.*" "up 6"
-gdb_test "up" ".*\#3.*worker.*144.*" "up 7"
-gdb_test "up" ".*__pthread_exit.*" "up 8"
-gdb_test "up" ".*Initial.*cannot go up.*" "found thread base"
-
-gdb_test "b 145 thr 3" ".*Breakpoint 3.*145.*" "thread-specific bp"
-gdb_test "i b" ".*2.*breakpoint.*at.*120.*3.*breakpoint.*at.*145 thread 3.*" "show thread-specific bp"
-gdb_test "del 2" ".*" ""
-
-gdb_test "c" ".*Breakpoint 3.*145.*" "hit thread-specific bp"
-gdb_test "i th" ".*\\\* 3.*145.*" "at correct thread"
-
-pre_timeout 100
-gdb_test "n" ".*146.*" "next from thread-specific bp"
-post_timeout
-
-gdb_test "d 3" ".*" ""
-gdb_test "c" ".*Program exited normally\..*" "run to finish"
-
-# Done!
-#
-gdb_exit
-
-set timeout $oldtimeout
-set verbose $oldverbose
-
-# execute_anywhere "rm -f ${binfile}"
-#
-return 0
-
-