From: Keith Seitz Date: Wed, 4 Sep 2002 20:17:13 +0000 (+0000) Subject: * lib/mi-support.exp (mi_run_to_main): Allow anything to precede X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=12fd146d9c8fa08ec735d2db07b58402d16fdaf4;p=thirdparty%2Fbinutils-gdb.git * lib/mi-support.exp (mi_run_to_main): Allow anything to precede regexp for stopping at main. Could have multiple event notifications. Don't assume that main was declared with no parameters. (mi_step_next_helper): New procedure to do step/next. (mi_next): Use mi_step_next_helper. (mi_step): Ditto. --- diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 6811f099b24..618cbe9b235 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,12 @@ +2002-09-04 Keith Seitz + + * lib/mi-support.exp (mi_run_to_main): Allow anything to precede + regexp for stopping at main. Could have multiple event notifications. + Don't assume that main was declared with no parameters. + (mi_step_next_helper): New procedure to do step/next. + (mi_next): Use mi_step_next_helper. + (mi_step): Ditto. + 2002-09-04 Keith Seitz * lib/gdb.exp (gdb_compile_pthreads): Fix "build_bin" typo. diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp index 4f0bb080d7c..70d8a1eaf38 100644 --- a/gdb/testsuite/lib/mi-support.exp +++ b/gdb/testsuite/lib/mi-support.exp @@ -1,4 +1,4 @@ -# Copyright 1999, 2000 Free Software Foundation, Inc. +# Copyright 1999, 2000, 2002 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 @@ -650,7 +650,7 @@ proc mi_run_to_main { } { mi_run_cmd gdb_expect { - -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"\[0-9\]+\",thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\"main\",args=\(\\\[\\\]\|\{\}\),file=\".*\",line=\"\[0-9\]*\"\}\r\n$mi_gdb_prompt$" { + -re ".*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"\[0-9\]+\",thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\"main\",args=\(\\\[.*\\\]\|\{.*\}\),file=\".*\",line=\"\[0-9\]*\"\}\r\n$mi_gdb_prompt$" { pass "$test" return 0 } @@ -665,47 +665,45 @@ proc mi_run_to_main { } { } +# Helper function for mi_next and mi_step +# CMD is either "step" or "next" +# TEST is the name of the test (passed to dejagnu's pass/fail) +# Returns: +# 0 if passed +# 1 if failed/timeout +proc mi_step_next_helper {cmd test} { + global suppress_flag + if { $suppress_flag } { + return 1 + } + + global mi_gdb_prompt decimal hex + send_gdb "220-exec-$cmd\n" + gdb_expect { + -re ".*220\\^running\r\n$mi_gdb_prompt.*220\\*stopped,reason=\"end-stepping-range\",thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\".*\",args=\(\\\[.*\\\]\|\{.*\}\),file=\".*\",line=\"$decimal\"\}\r\n$mi_gdb_prompt$" { + pass "$test" + return 0 + } + timeout { + fail "$test" + return 1 + } + } +} + # Next to the next statement +# For return values, see mi_step_next_helper proc mi_next { test } { - global suppress_flag - if { $suppress_flag } { - return -1 - } - global mi_gdb_prompt - send_gdb "220-exec-next\n" - gdb_expect { - -re "220\\^running\r\n${mi_gdb_prompt}220\\*stopped,reason=\"end-stepping-range\",thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\".*\",args=\[\\\[\{].*[\\\]\}\],file=\".*\",line=\"\[0-9\]*\"\}\r\n$mi_gdb_prompt$" { - pass "$test" - return 0 - } - timeout { - fail "$test" - return -1 - } - } + return [mi_step_next_helper next $test] } # Step to the next statement +# For return values, see mi_step_next_helper proc mi_step { test } { - global suppress_flag - if { $suppress_flag } { - return -1 - } - global mi_gdb_prompt - send_gdb "220-exec-step\n" - gdb_expect { - -re "220\\^running\r\n${mi_gdb_prompt}220\\*stopped,reason=\"end-stepping-range\",thread-id=\"$decimal\",frame=\{addr=\"$hex\",func=\".*\",args=\[\\\[\{\].*\[\\\]\}\],file=\".*\",line=\"\[0-9\]*\"\}\r\n$mi_gdb_prompt$" { - pass "$test" - return 0 - } - timeout { - fail "$test" - return -1 - } - } + return [mi_step_next_helper step $test] } # cmd should not include the number or newline (i.e. "exec-step 3", not