From ecebef6a9acbca2f98e1ed64b986d792c6933ec5 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Fri, 21 Mar 2014 23:51:16 +0000 Subject: [PATCH] gdb.threads/thread-specific.exp: Fix uninitialized variable references This fixes: FAIL: gdb.threads/thread-specific.exp: continue to thread-specific breakpoint (timeout) ERROR: tcl error sourcing .../gdb/testsuite/gdb.threads/thread-specific.exp. ERROR: can't read "this_breakpoint": no such variable while executing "gdb_test_multiple "info breakpoint $this_breakpoint" "info on bp" { -re ".*stop only in thread (\[0-9\]*).*$gdb_prompt $" { set this_thread $expe..." (file ".../gdb/testsuite/gdb.threads/thread-specific.exp" line 108) invoked from within "source .../gdb/testsuite/gdb.threads/thread-specific.exp" ("uplevel" body line 1) invoked from within "uplevel #0 source .../gdb/testsuite/gdb.threads/thread-specific.exp" invoked from within "catch "uplevel #0 source $test_file_name"" and then: FAIL: gdb.threads/thread-specific.exp: continue to thread-specific breakpoint (timeout) UNTESTED: gdb.threads/thread-specific.exp: info on bp ERROR: tcl error sourcing .../gdb/testsuite/gdb.threads/thread-specific.exp. ERROR: can't read "this_thread": no such variable while executing "gdb_test {print $_thread} ".* = $this_thread" "thread var at break"" (file ".../gdb/testsuite/gdb.threads/thread-specific.exp" line 119) invoked from within "source .../gdb/testsuite/gdb.threads/thread-specific.exp" ("uplevel" body line 1) invoked from within "uplevel #0 source .../gdb/testsuite/gdb.threads/thread-specific.exp" invoked from within "catch "uplevel #0 source $test_file_name"" Final results: FAIL: gdb.threads/thread-specific.exp: continue to thread-specific breakpoint (timeout) UNTESTED: gdb.threads/thread-specific.exp: info on bp UNTESTED: gdb.threads/thread-specific.exp: thread var at break Of course the first failure best wasn't there, but failing that the script shouldn't crash. * gdb.threads/thread-specific.exp: Handle the lack of usable $this_breakpoint and $this_thread. --- gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.threads/thread-specific.exp | 20 ++++++++++++++----- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index a78fb17bf19..aad07fdb54a 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-03-21 Maciej W. Rozycki + + * gdb.threads/thread-specific.exp: Handle the lack of usable + $this_breakpoint and $this_thread. + 2014-03-21 Hui Zhu * gdb.base/attach.exp (do_command_attach_tests): New. diff --git a/gdb/testsuite/gdb.threads/thread-specific.exp b/gdb/testsuite/gdb.threads/thread-specific.exp index 90968e9e639..e271484e931 100644 --- a/gdb/testsuite/gdb.threads/thread-specific.exp +++ b/gdb/testsuite/gdb.threads/thread-specific.exp @@ -95,6 +95,7 @@ foreach thread [lrange $threads 1 end] { gdb_breakpoint "$line thread $thread" } +set this_breakpoint -1 gdb_test_multiple "continue" "continue to thread-specific breakpoint" { -re "Breakpoint $main_breakpoint, .* at .*\r\n$gdb_prompt $" { fail "continue to thread-specific breakpoint (wrong breakpoint)" @@ -105,13 +106,22 @@ gdb_test_multiple "continue" "continue to thread-specific breakpoint" { } } -gdb_test_multiple "info breakpoint $this_breakpoint" "info on bp" { - -re ".*stop only in thread (\[0-9\]*).*$gdb_prompt $" { - set this_thread $expect_out(1,string) - pass "found breakpoint for thread number" +set this_thread -1 +if { $this_breakpoint != -1 } { + gdb_test_multiple "info breakpoint $this_breakpoint" "info on bp" { + -re ".*stop only in thread (\[0-9\]*).*$gdb_prompt $" { + set this_thread $expect_out(1,string) + pass "found breakpoint for thread number" + } } +} else { + untested "info on bp" } -gdb_test {print $_thread} ".* = $this_thread" "thread var at break" +if { $this_thread != -1 } { + gdb_test {print $_thread} ".* = $this_thread" "thread var at break" +} else { + untested "thread var at break" +} return 0 -- 2.30.2