summaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.base/break-interp.exp
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2010-01-14 21:12:00 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2010-01-14 21:12:00 +0000
commitbbfba9ed150f56ba5b09360314b30381a865ff5c (patch)
treee19bd8850f4c2d90c1a662b736907121b67939b8 /gdb/testsuite/gdb.base/break-interp.exp
parent61f0d76280d963a9ecf3a3a525dae7ac21050636 (diff)
gdb/testsuite/
* gdb.base/break-interp-lib.c: Include unistd.h, assert.h and stdio.h. (libfunc): New parameter action. Implement also selectable "sleep". * gdb.base/break-interp-main.c: Include assert.h. (libfunc): New parameter action. (main): New parameters argc and argv. Assert argc. Pass argv. * gdb.base/break-interp.exp (test_core): Pass the "segv" argument. (test_attach): New proc. (test_ld): Pass new "segv" exec parameter. Call also test_attach. * lib/gdb.exp (core_find): New parameter arg. Pass it to $binfile.
Diffstat (limited to 'gdb/testsuite/gdb.base/break-interp.exp')
-rw-r--r--gdb/testsuite/gdb.base/break-interp.exp44
1 files changed, 42 insertions, 2 deletions
diff --git a/gdb/testsuite/gdb.base/break-interp.exp b/gdb/testsuite/gdb.base/break-interp.exp
index 553bbc6266..d1c36ede41 100644
--- a/gdb/testsuite/gdb.base/break-interp.exp
+++ b/gdb/testsuite/gdb.base/break-interp.exp
@@ -240,7 +240,7 @@ proc reach {func command} {
proc test_core {file} {
global srcdir subdir gdb_prompt
- set corefile [core_find $file]
+ set corefile [core_find $file {} "segv"]
if {$corefile == ""} {
return
}
@@ -258,6 +258,44 @@ proc test_core {file} {
gdb_test "bt" "#\[0-9\]+ +\[^\r\n\]*\\mlibfunc\\M\[^\r\n\]*\r\n#\[0-9\]+ +\[^\r\n\]*\\mmain\\M.*" "core main bt"
}
+proc test_attach {file} {
+ global board_info
+
+ gdb_exit
+
+ set test "sleep function started"
+
+ set command "${file} sleep"
+ set res [remote_spawn host $command];
+ if { $res < 0 || $res == "" } {
+ perror "Spawning $command failed."
+ fail $test
+ return
+ }
+ set pid [exp_pid -i $res]
+ gdb_expect {
+ -re "sleeping\r\n" {
+ pass $test
+ }
+ eof {
+ fail "$test (eof)"
+ return
+ }
+ timeout {
+ fail "$test (timeout)"
+ return
+ }
+ }
+
+ gdb_exit
+ gdb_start
+ gdb_test "attach $pid" "Attaching to process $pid\r\n.*" "attach"
+ gdb_test "bt" "#\[0-9\]+ +\[^\r\n\]*\\mlibfunc\\M\[^\r\n\]*\r\n#\[0-9\]+ +\[^\r\n\]*\\mmain\\M.*" "attach main bt"
+ gdb_exit
+
+ remote_exec host "kill -9 $pid"
+}
+
proc test_ld {file ifmain trynosym} {
global srcdir subdir gdb_prompt
@@ -270,7 +308,7 @@ proc test_ld {file ifmain trynosym} {
gdb_reinitialize_dir $srcdir/$subdir
gdb_load $file
- reach "dl_main" run
+ reach "dl_main" "run segv"
gdb_test "bt" "#0 +\[^\r\n\]*\\mdl_main\\M.*" "dl bt"
@@ -282,6 +320,8 @@ proc test_ld {file ifmain trynosym} {
gdb_test "bt" "#0 +\[^\r\n\]*\\mlibfunc\\M\[^\r\n\]*\r\n#1 +\[^\r\n\]*\\mmain\\M.*" "main bt"
test_core $file
+
+ test_attach $file
}
if !$trynosym {