From 05acf2749697518bdc83f3051e876e5fbe90fd12 Mon Sep 17 00:00:00 2001 From: Jan Kratochvil Date: Fri, 2 Dec 2011 22:35:17 +0000 Subject: [PATCH] gdb/testsuite/ Fix gdb.mi/mi-solib.exp without system debug info installed. * lib/mi-support.exp (mi_expect_stop): Accept FILE also for `from' expect attribute, return 0 for it. Update comments. --- gdb/testsuite/ChangeLog | 6 ++++++ gdb/testsuite/lib/mi-support.exp | 24 +++++++++++++++--------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index a1d6ab08719..8b291cb1b14 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2011-12-02 Jan Kratochvil + + Fix gdb.mi/mi-solib.exp without system debug info installed. + * lib/mi-support.exp (mi_expect_stop): Accept FILE also for `from' + expect attribute, return 0 for it. Update comments. + 2011-12-02 Jan Kratochvil * gdb.base/solib-corrupted.exp: Suppress test on is_remote target. diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp index 0e28bfa8f86..32949fa1822 100644 --- a/gdb/testsuite/lib/mi-support.exp +++ b/gdb/testsuite/lib/mi-support.exp @@ -981,9 +981,10 @@ proc mi_detect_async {} { # Wait for MI *stopped notification to appear. # The REASON, FUNC, ARGS, FILE and LINE are regular expressions -# to match against whatever is output in *stopped. ARGS should -# not include [] the list of argument is enclosed in, and other -# regular expressions should not include quotes. +# to match against whatever is output in *stopped. FILE may also match +# filename of a file without debug info. ARGS should not include [] the +# list of argument is enclosed in, and other regular expressions should +# not include quotes. # If EXTRA is a list of one element, it's the regular expression # for output expected right after *stopped, and before GDB prompt. # If EXTRA is a list of two elements, the first element is for @@ -991,9 +992,10 @@ proc mi_detect_async {} { # right after reason field. The regex after reason should not include # the comma separating it from the following fields. # -# When we fail to match output at all, -1 is returned. Otherwise, -# the line at which we stop is returned. This is useful when exact -# line is not possible to specify for some reason -- one can pass +# When we fail to match output at all, -1 is returned. If FILE does +# match and the target system has no debug info for FILE return 0. +# Otherwise, the line at which we stop is returned. This is useful when +# exact line is not possible to specify for some reason -- one can pass # the .* or "\[0-9\]*" regexps for line, and then check the line # programmatically. # @@ -1067,11 +1069,15 @@ proc mi_expect_stop { reason func args file line extra test } { set any "\[^\n\]*" - verbose -log "mi_expect_stop: expecting: \\*stopped,${r}${a}${bn}frame=\{addr=\"$hex\",func=\"$func\",args=$args,file=\"$any$file\",fullname=\"${fullname_syntax}$file\",line=\"$line\"\}$after_stopped,thread-id=\"$decimal\",stopped-threads=$any\r\n($thread_selected_re|$breakpoint_re)*$prompt_re" + verbose -log "mi_expect_stop: expecting: \\*stopped,${r}${a}${bn}frame=\{addr=\"$hex\",func=\"$func\",args=$args,(?:file=\"$any$file\",fullname=\"${fullname_syntax}$file\",line=\"$line\"|from=\"$file\")\}$after_stopped,thread-id=\"$decimal\",stopped-threads=$any\r\n($thread_selected_re|$breakpoint_re)*$prompt_re" gdb_expect { - -re "\\*stopped,${r}${a}${bn}frame=\{addr=\"$hex\",func=\"$func\",args=$args,file=\"$any$file\",fullname=\"${fullname_syntax}$file\",line=\"($line)\"\}$after_stopped,thread-id=\"$decimal\",stopped-threads=$any\r\n($thread_selected_re|$breakpoint_re)*$prompt_re" { + -re "\\*stopped,${r}${a}${bn}frame=\{addr=\"$hex\",func=\"$func\",args=$args,(?:file=\"$any$file\",fullname=\"${fullname_syntax}$file\",line=\"($line)\"|from=\"$file\")\}$after_stopped,thread-id=\"$decimal\",stopped-threads=$any\r\n($thread_selected_re|$breakpoint_re)*$prompt_re" { pass "$test" - return $expect_out(2,string) + if {[array names expect_out "2,string"] != ""} { + return $expect_out(2,string) + } + # No debug info available but $file does match. + return 0 } -re "\\*stopped,${r}${a}${bn}frame=\{addr=\"$hex\",func=\"$any\",args=\[\\\[\{\]$any\[\\\]\}\],file=\"$any\",fullname=\"${fullname_syntax}$any\",line=\"\[0-9\]*\"\}$after_stopped,thread-id=\"$decimal\",stopped-threads=$any\r\n($thread_selected_re|$breakpoint_re)*$prompt_re" { verbose -log "got $expect_out(buffer)" -- 2.30.2