+2002-11-04 Elena Zannoni <ezannoni@redhat.com>
+
+ * mi-console.exp: Use mi_runto, mi_run_to_main, mi_next_to,
+ mi_step_to wherever possible. Update copyright notices.
+ * mi-disassemble.exp: Ditto.
+ * mi-eval.exp: Ditto.
+ * mi-read-memory.exp: Ditto.
+ * mi-regs.exp: Ditto.
+ * mi-return.exp: Ditto.
+ * mi-stack.exp: Ditto.
+ * mi-stepi.exp: Ditto.
+ * mi-var-block.exp: Ditto.
+ * mi-var-cmd.exp: Ditto.
+ * mi-watch.exp: Ditto.
+ * mi1-console.exp: Ditto.
+ * mi1-disassemble.exp: Ditto.
+ * mi1-eval.exp: Ditto.
+ * mi1-read-memory.exp: Ditto.
+ * mi1-regs.exp: Ditto.
+ * mi1-return.exp: Ditto.
+ * mi1-stack.exp: Ditto.
+ * mi1-stepi.exp: Ditto.
+ * mi1-var-block.exp: Ditto.
+ * mi1-var-cmd.exp: Ditto.
+ * mi1-watch.exp: Ditto.
+
2002-10-23 Jeff Johnston <jjohnstn@redhat.com>
* mi-var-cmd.exp: Add tests to verify that a -var-assign that changes
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-# Halt in main
-mi_gdb_test "200-break-insert main" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*mi-console.c\",line=\"13\",times=\"0\"\}" \
- "break-insert operation"
-mi_run_cmd
-gdb_expect {
- -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*mi-console.c\",line=\"13\"\}\r\n$mi_gdb_prompt$" {
- pass "run to main"
- }
- -re ".*$mi_gdb_prompt$" {
- fail "run to main (2)"
- }
- timeout {
- fail "run to main (timeout)"
- }
-}
+mi_run_to_main
# Next over the hello() call which will produce lots of output
send_gdb "47-exec-next\n"
-# 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-proc test_breakpoints_creation_and_listing {} {
- global mi_gdb_prompt
- global srcfile
- global hex
-
- # Insert some breakpoints and list them
- # Also, disable some so they do not interfere with other tests
- # Tests:
- # -break-insert
- # -break-list
- # -break-disable
- # -break-info
-
- mi_gdb_test "200-break-insert main" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}" \
- "break-insert operation"
-
- mi_gdb_test "204-break-list" \
- "204\\^done,BreakpointTable=\{.*,body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}\\\]\}" \
- "list of breakpoints"
-}
-
-proc test_running_the_program {} {
- global mi_gdb_prompt
- global hex
-
- # Run the program without args
- # Tests:
- # -exec-run
-
- # mi_gdb_test cannot be used for asynchronous commands because there are
- # two prompts involved and this can lead to a race condition.
- # FIXME: We are accepting a duplicate file and line info temporarely.
- # The following is equivalent to a send_gdb "000-exec-run\n"
- mi_run_cmd
- # The running part has been checked already by mi_run_cmd
- gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"32\"\}\r\n$mi_gdb_prompt$" {
- pass "run to main"
- }
- -re ".*$mi_gdb_prompt$" {fail "run to main (2)"}
- timeout {fail "run to main (timeout 2)"}
- }
-}
-
proc test_disassembly_only {} {
global mi_gdb_prompt
global hex
}
-test_breakpoints_creation_and_listing
-test_running_the_program
+mi_run_to_main
test_disassembly_only
test_disassembly_mixed
test_disassembly_bogus_args
-# 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-proc test_running_the_program {} {
- global mi_gdb_prompt
- global hex
-
- # Run the program without args, then specify srgs and rerun the program
- # Tests:
- # -exec-run
-
- mi_gdb_test "300-break-insert callee4" \
- "300\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
- "insert breakpoint at callee4"
-
- # mi_gdb_test cannot be used for asynchronous commands because there are
- # two prompts involved and this can lead to a race condition.
- # The following is equivalent to a send_gdb "000-exec-run\n"
- mi_run_cmd
- # The running part has been checked already by mi_run_cmd
- gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" \
- { pass "run to callee4" }
- -re ".*$mi_gdb_prompt$" {fail "run to callee4 (2)"}
- timeout {fail "run to callee4 (timeout 2)"}
- }
-
- send_gdb "101-exec-next\n"
- gdb_expect {
- -re "101\\^running\r\n$mi_gdb_prompt" {
- gdb_expect {
- -re "\[\r\n\]*101\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"9\"\}\r\n$mi_gdb_prompt$" \
- { pass "next in callee4" }
- -re ".*$mi_gdb_prompt$" {fail "next in callee4 (2)"}
- timeout {fail "next in callee4 (timeout 2)"}
- }
- }
- -re ".*$mi_gdb_prompt$" {fail "next in callee4 (1)"}
- timeout {fail "next in callee4 (timeout 1)"}
- }
-
-}
-
-test_running_the_program
+mi_runto callee4
+mi_next_to "callee4" "" "basics.c" "9" "next at callee4"
mi_gdb_test "211-data-evaluate-expression A" "211\\^done,value=\"1\"" "eval A"
-# 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
mi_run_to_main
-
-#mi_next "do initialization"
-send_gdb "101-exec-next\n"
-gdb_expect {
- -re "101\\^running\r\n$mi_gdb_prompt" {
- gdb_expect {
- -re "\[\r\n\]*101\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*mi-read-memory.c\",line=\"20\"\}.*$mi_gdb_prompt$" \
- { pass "do initialization" }
- -re ".*$mi_gdb_prompt$" {fail "do initialization (2)"}
- timeout {fail "do initialization (timeout 2)"}
- }
- }
- -re ".*$mi_gdb_prompt$" {fail "do initialization (1)"}
- timeout {fail "do initialization (timeout 1)"}
-}
+mi_next_to "main" "" "mi-read-memory.c" "20" "next at main"
mi_gdb_test "1-data-read-memory" \
"1\\^error,msg=\".*\"" \
-# 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-proc test_breakpoints_creation_and_listing {} {
- global mi_gdb_prompt
- global srcfile
- global hex
-
- # Insert some breakpoints and list them
- # Also, disable some so they do not interfere with other tests
- # Tests:
- # -break-insert
- # -break-list
- # -break-disable
- # -break-info
-
- mi_gdb_test "200-break-insert main" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}" \
- "break-insert operation"
-
- mi_gdb_test "204-break-list" \
- "204\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[.*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}\\\]\}" \
- "list of breakpoints"
-}
-
-proc test_running_the_program {} {
- global mi_gdb_prompt
- global hex
-
- # Run the program without args
- # Tests:
- # -exec-run
-
- # mi_gdb_test cannot be used for asynchronous commands because there are
- # two prompts involved and this can lead to a race condition.
- # FIXME: We are accepting a duplicate file and line info temporarely.
- # The following is equivalent to a send_gdb "000-exec-run\n"
- mi_run_cmd
- # The running part has been checked already by mi_run_cmd
- gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"32\"\}\r\n$mi_gdb_prompt$" {
- pass "run to main"
- }
- -re ".*$mi_gdb_prompt$" {fail "run to main (2)"}
- timeout {fail "run to main (timeout 2)"}
- }
-}
-
proc sparc_register_tests_no_exec { } {
# Test the generic IDT chip.
mi_gdb_test "111-data-list-register-values" \
if [istarget "sparc-*-*"] then {
sparc_register_tests_no_exec
- test_breakpoints_creation_and_listing
- test_running_the_program
+ mi_run_to_main
sparc_register_tests
} else {
verbose "mi-regs.exp tests ignored for this target"
-# 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-proc test_running_to_callee4 {} {
- global mi_gdb_prompt
- global hex
-
- mi_gdb_test "200-break-insert callee4" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
- "break-insert operation"
-
- mi_run_cmd
-
- gdb_expect {
- -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" {
- pass "run to callee4"
- }
- -re ".*$mi_gdb_prompt$" {
- fail "run to callee4 (2)"
- }
- timeout {
- fail "run to callee4 (timeout)"
- }
- }
-
- mi_gdb_test "205-break-delete" \
- "205\\^done.*" \
- "delete all breakpoints"
-
-}
proc test_return_simple {} {
global mi_gdb_prompt
}
}
-test_running_to_callee4
+mi_runto callee4
+
+mi_gdb_test "205-break-delete" \
+ "205\\^done.*" \
+ "delete all breakpoints"
+
test_return_simple
mi_gdb_exit
-# Copyright 2000 Free Software Foundation, Inc.
+# Copyright 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-
-mi_gdb_test "200-break-insert callee4" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
- "break-insert operation"
-
-mi_run_cmd
-# The running part has been checked already by mi_run_cmd
-gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" {
- pass "run to callee4"
- }
- -re ".*$mi_gdb_prompt$" {fail "run to callee4 (2)"}
- timeout {fail "run to callee4 (timeout 2)"}
-}
-
-
proc test_stack_frame_listing {} {
global mi_gdb_prompt
global hex
}
+mi_runto callee4
test_stack_frame_listing
test_stack_args_listing
test_stack_locals_listing
-# 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-proc test_running_to_main {} {
- global mi_gdb_prompt
- global hex
-
- mi_gdb_test "200-break-insert main" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}" \
- "break-insert operation"
-
- mi_run_cmd
-
- gdb_expect {
- -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"32\"\}\r\n$mi_gdb_prompt$" {
- pass "run to main"
- }
- -re ".*$mi_gdb_prompt$" {
- fail "run to main (2)"
- }
- timeout {
- fail "run to main (timeout)"
- }
- }
-}
-
proc test_stepi_nexti {} {
global mi_gdb_prompt
global hex
}
}
-test_running_to_main
+mi_run_to_main
test_stepi_nexti
mi_gdb_exit
-# Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
+# Copyright (C) 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-mi_gdb_test "200-break-insert do_block_tests" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"do_block_tests\",file=\".*var-cmd.c\",line=\"154\",times=\"0\"\}" \
- "break-insert operation"
-
-mi_run_cmd
-# The running part has been checked already by mi_run_cmd
-gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"154\"\}\r\n$mi_gdb_prompt$" {
- pass "run to do_block_tests"
- }
- -re ".*$mi_gdb_prompt$" {fail "run to do_block_tests (2)"}
- timeout {fail "run to do_block_tests (timeout 2)"}
-}
+mi_runto do_block_tests
# Test: c_variable-3.2
# Desc: create cb and foo
"create local variable foo"
# step to "foo = 123;"
-send_gdb "-exec-step\n"
-gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"158\"\}\r\n$mi_gdb_prompt$" {
- pass "step at do_block_tests"
- }
- timeout {
- fail "step at do_block_tests (timeout)"
- }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "158" "step at do_block_test"
# Be paranoid and assume 3.2 created foo
"create local variable foo"
# step to "foo2 = 123;"
-send_gdb "-exec-step\n"
-gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"161\"\}\r\n$mi_gdb_prompt$" {
- pass "step at do_block_tests"
- }
- timeout {
- fail "step at do_block_tests (timeout)"
- }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "161" "step at do_block_test"
# Test: c_variable-3.4
# Desc: check foo, cb changed
"update all vars: cb foo changed"
# step to "foo = 321;"
-send_gdb "-exec-step\n"
-gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"164\"\}\r\n$mi_gdb_prompt$" {
- pass "step at do_block_tests"
- }
- timeout {
- fail "step at do_block_tests (timeout)"
- }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "164" "step at do_block_test"
# Test: c_variable-3.5
# Desc: create inner block foo
"create local variable inner_foo"
# step to "foo2 = 0;"
-send_gdb "-exec-step\n"
-gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"166\"\}\r\n$mi_gdb_prompt$" {
- pass "step at do_block_tests"
- }
- timeout { fail "step at do_block_tests (timeout)" }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "166" "step at do_block_test"
# Test: c_variable-3.6
# Desc: create foo2
"delete var inner_foo"
# step to "foo = 0;"
-send_gdb "-exec-step\n"
-gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"168\"\}\r\n$mi_gdb_prompt$" {
- pass "step at do_block_tests"
- }
- timeout { fail "step at do_block_tests (timeout)" }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "168" "step at do_block_test"
# Test: c_variable-3.8
# Desc: check that foo2 out of scope (known gdb problem)
clear_xfail *-*-*
# step to "cb = 21;"
-send_gdb "-exec-step\n"
-gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"171\"\}\r\n$mi_gdb_prompt$" {
- pass "step at do_block_tests"
- }
- timeout { fail "step at do_block_tests (timeout)" }
-}
-
+mi_step_to "do_block_tests" "" "var-cmd.c" "171" "step at do_block_test"
# Test: c_variable-3.9
# Desc: check that only cb is in scope (known gdb problem)
-# Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
+# Copyright (C) 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
"&\"mi_cmd_var_create: unable to create variable object\\\\n\".*113\\^error,msg=\"mi_cmd_var_create: unable to create variable object\"" \
"create out of scope variable"
-mi_gdb_test "200-break-insert do_locals_tests" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"do_locals_tests\",file=\".*var-cmd.c\",line=\"106\",times=\"0\"\}" \
- "break-insert operation"
-
-mi_run_cmd
-# The running part has been checked already by mi_run_cmd
-gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_locals_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"106\"\}\r\n$mi_gdb_prompt$" {
- pass "run to do_locals_tests"
- }
- -re ".*$mi_gdb_prompt$" {fail "run to do_locals_tests (2)"}
- timeout {fail "run to do_locals_tests (timeout 2)"}
-}
+mi_runto do_locals_tests
# Test: c_variable-1.4
# Desc: create local variables
-# 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
"delete read watchpoint"
}
-proc test_running_the_program {} {
- global mi_gdb_prompt
- global hex
-
- # Run the program without args, then specify srgs and rerun the program
- # Tests:
- # -exec-run
-
- mi_gdb_test "300-break-insert callee4" \
- "300\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
- "insert breakpoint at callee4"
-
- # mi_gdb_test cannot be used for asynchronous commands because there are
- # two prompts involved and this can lead to a race condition.
- # The following is equivalent to a send_gdb "000-exec-run\n"
- mi_run_cmd
- # The running part has been checked already by mi_run_cmd
- gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" \
- { pass "run to callee4" }
- -re ".*$mi_gdb_prompt$" {fail "run to callee4 (2)"}
- timeout {fail "run to callee4 (timeout 2)"}
- }
-}
-
proc test_watchpoint_triggering {} {
global mi_gdb_prompt
global hex
}
}
-test_running_the_program
+mi_runto callee4
test_watchpoint_creation_and_listing
#test_rwatch_creation_and_listing
#test_awatch_creation_and_listing
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-# Halt in main
-mi_gdb_test "200-break-insert main" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*mi-console.c\",line=\"13\",times=\"0\"\}" \
- "break-insert operation"
-mi_run_cmd
-gdb_expect {
- -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*mi-console.c\",line=\"13\"\}\r\n$mi_gdb_prompt$" {
- pass "run to main"
- }
- -re ".*$mi_gdb_prompt$" {
- fail "run to main (2)"
- }
- timeout {
- fail "run to main (timeout)"
- }
-}
+mi_run_to_main
# Next over the hello() call which will produce lots of output
send_gdb "47-exec-next\n"
-# 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-proc test_breakpoints_creation_and_listing {} {
- global mi_gdb_prompt
- global srcfile
- global hex
-
- # Insert some breakpoints and list them
- # Also, disable some so they do not interfere with other tests
- # Tests:
- # -break-insert
- # -break-list
- # -break-disable
- # -break-info
-
- mi_gdb_test "200-break-insert main" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}" \
- "break-insert operation"
-
- mi_gdb_test "204-break-list" \
- "204\\^done,BreakpointTable=\{.*,body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}\\\]\}" \
- "list of breakpoints"
-}
-
-proc test_running_the_program {} {
- global mi_gdb_prompt
- global hex
-
- # Run the program without args
- # Tests:
- # -exec-run
-
- # mi_gdb_test cannot be used for asynchronous commands because there are
- # two prompts involved and this can lead to a race condition.
- # FIXME: We are accepting a duplicate file and line info temporarely.
- # The following is equivalent to a send_gdb "000-exec-run\n"
- mi_run_cmd
- # The running part has been checked already by mi_run_cmd
- gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"32\"\}\r\n$mi_gdb_prompt$" {
- pass "run to main"
- }
- -re ".*$mi_gdb_prompt$" {fail "run to main (2)"}
- timeout {fail "run to main (timeout 2)"}
- }
-}
-
proc test_disassembly_only {} {
global mi_gdb_prompt
global hex
}
-test_breakpoints_creation_and_listing
-test_running_the_program
+mi_run_to_main
test_disassembly_only
test_disassembly_mixed
test_disassembly_bogus_args
-# 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-proc test_running_the_program {} {
- global mi_gdb_prompt
- global hex
-
- # Run the program without args, then specify srgs and rerun the program
- # Tests:
- # -exec-run
-
- mi_gdb_test "300-break-insert callee4" \
- "300\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
- "insert breakpoint at callee4"
-
- # mi_gdb_test cannot be used for asynchronous commands because there are
- # two prompts involved and this can lead to a race condition.
- # The following is equivalent to a send_gdb "000-exec-run\n"
- mi_run_cmd
- # The running part has been checked already by mi_run_cmd
- gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" \
- { pass "run to callee4" }
- -re ".*$mi_gdb_prompt$" {fail "run to callee4 (2)"}
- timeout {fail "run to callee4 (timeout 2)"}
- }
-
- send_gdb "101-exec-next\n"
- gdb_expect {
- -re "101\\^running\r\n$mi_gdb_prompt" {
- gdb_expect {
- -re "\[\r\n\]*101\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"9\"\}\r\n$mi_gdb_prompt$" \
- { pass "next in callee4" }
- -re ".*$mi_gdb_prompt$" {fail "next in callee4 (2)"}
- timeout {fail "next in callee4 (timeout 2)"}
- }
- }
- -re ".*$mi_gdb_prompt$" {fail "next in callee4 (1)"}
- timeout {fail "next in callee4 (timeout 1)"}
- }
-
-}
-
-test_running_the_program
+mi_runto callee4
+mi_next_to "callee4" "" "basics.c" "9" "next at callee4"
mi_gdb_test "211-data-evaluate-expression A" "211\\^done,value=\"1\"" "eval A"
-# 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
mi_run_to_main
#mi_next "do initialization"
-send_gdb "101-exec-next\n"
-gdb_expect {
- -re "101\\^running\r\n$mi_gdb_prompt" {
- gdb_expect {
- -re "\[\r\n\]*101\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*mi-read-memory.c\",line=\"20\"\}.*$mi_gdb_prompt$" \
- { pass "do initialization" }
- -re ".*$mi_gdb_prompt$" {fail "do initialization (2)"}
- timeout {fail "do initialization (timeout 2)"}
- }
- }
- -re ".*$mi_gdb_prompt$" {fail "do initialization (1)"}
- timeout {fail "do initialization (timeout 1)"}
-}
+
+mi_next_to "main" "" "mi-read-memory.c" "20" "next at main"
mi_gdb_test "1-data-read-memory" \
"1\\^error,msg=\".*\"" \
-# 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-proc test_breakpoints_creation_and_listing {} {
- global mi_gdb_prompt
- global srcfile
- global hex
-
- # Insert some breakpoints and list them
- # Also, disable some so they do not interfere with other tests
- # Tests:
- # -break-insert
- # -break-list
- # -break-disable
- # -break-info
-
- mi_gdb_test "200-break-insert main" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}" \
- "break-insert operation"
-
- mi_gdb_test "204-break-list" \
- "204\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[.*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}\\\]\}" \
- "list of breakpoints"
-}
-
-proc test_running_the_program {} {
- global mi_gdb_prompt
- global hex
-
- # Run the program without args
- # Tests:
- # -exec-run
-
- # mi_gdb_test cannot be used for asynchronous commands because there are
- # two prompts involved and this can lead to a race condition.
- # FIXME: We are accepting a duplicate file and line info temporarely.
- # The following is equivalent to a send_gdb "000-exec-run\n"
- mi_run_cmd
- # The running part has been checked already by mi_run_cmd
- gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"32\"\}\r\n$mi_gdb_prompt$" {
- pass "run to main"
- }
- -re ".*$mi_gdb_prompt$" {fail "run to main (2)"}
- timeout {fail "run to main (timeout 2)"}
- }
-}
-
proc sparc_register_tests_no_exec { } {
# Test the generic IDT chip.
mi_gdb_test "111-data-list-register-values" \
if [istarget "sparc-*-*"] then {
sparc_register_tests_no_exec
- test_breakpoints_creation_and_listing
- test_running_the_program
+ mi_run_to_main
sparc_register_tests
} else {
verbose "mi-regs.exp tests ignored for this target"
-# 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-proc test_running_to_callee4 {} {
- global mi_gdb_prompt
- global hex
-
- mi_gdb_test "200-break-insert callee4" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
- "break-insert operation"
-
- mi_run_cmd
-
- gdb_expect {
- -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" {
- pass "run to callee4"
- }
- -re ".*$mi_gdb_prompt$" {
- fail "run to callee4 (2)"
- }
- timeout {
- fail "run to callee4 (timeout)"
- }
- }
-
- mi_gdb_test "205-break-delete" \
- "205\\^done.*" \
- "delete all breakpoints"
-
-}
proc test_return_simple {} {
global mi_gdb_prompt
}
}
-test_running_to_callee4
+mi_runto callee4
+
+mi_gdb_test "205-break-delete" \
+ "205\\^done.*" \
+ "delete all breakpoints"
+
test_return_simple
mi_gdb_exit
-# Copyright 2000 Free Software Foundation, Inc.
+# Copyright 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-
-mi_gdb_test "200-break-insert callee4" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
- "break-insert operation"
-
-mi_run_cmd
-# The running part has been checked already by mi_run_cmd
-gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" {
- pass "run to callee4"
- }
- -re ".*$mi_gdb_prompt$" {fail "run to callee4 (2)"}
- timeout {fail "run to callee4 (timeout 2)"}
-}
-
-
proc test_stack_frame_listing {} {
global mi_gdb_prompt
global hex
}
+mi_runto callee4
test_stack_frame_listing
test_stack_args_listing
test_stack_locals_listing
-# 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-proc test_running_to_main {} {
- global mi_gdb_prompt
- global hex
-
- mi_gdb_test "200-break-insert main" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}" \
- "break-insert operation"
-
- mi_run_cmd
-
- gdb_expect {
- -re "000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"main\",args=\\\[\\\],file=\".*basics.c\",line=\"32\"\}\r\n$mi_gdb_prompt$" {
- pass "run to main"
- }
- -re ".*$mi_gdb_prompt$" {
- fail "run to main (2)"
- }
- timeout {
- fail "run to main (timeout)"
- }
- }
-}
-
proc test_stepi_nexti {} {
global mi_gdb_prompt
global hex
}
}
-test_running_to_main
+mi_run_to_main
test_stepi_nexti
mi_gdb_exit
-# Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
+# Copyright (C) 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
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
-mi_gdb_test "200-break-insert do_block_tests" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"do_block_tests\",file=\".*var-cmd.c\",line=\"154\",times=\"0\"\}" \
- "break-insert operation"
-
-mi_run_cmd
-# The running part has been checked already by mi_run_cmd
-gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"154\"\}\r\n$mi_gdb_prompt$" {
- pass "run to do_block_tests"
- }
- -re ".*$mi_gdb_prompt$" {fail "run to do_block_tests (2)"}
- timeout {fail "run to do_block_tests (timeout 2)"}
-}
+mi_runto do_block_tests
# Test: c_variable-3.2
# Desc: create cb and foo
"create local variable foo"
# step to "foo = 123;"
-send_gdb "-exec-step\n"
-gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"158\"\}\r\n$mi_gdb_prompt$" {
- pass "step at do_block_tests"
- }
- timeout {
- fail "step at do_block_tests (timeout)"
- }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "158" "step at do_block_test"
# Be paranoid and assume 3.2 created foo
"create local variable foo"
# step to "foo2 = 123;"
-send_gdb "-exec-step\n"
-gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"161\"\}\r\n$mi_gdb_prompt$" {
- pass "step at do_block_tests"
- }
- timeout {
- fail "step at do_block_tests (timeout)"
- }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "161" "step at do_block_test"
# Test: c_variable-3.4
# Desc: check foo, cb changed
"update all vars: cb foo changed"
# step to "foo = 321;"
-send_gdb "-exec-step\n"
-gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"164\"\}\r\n$mi_gdb_prompt$" {
- pass "step at do_block_tests"
- }
- timeout {
- fail "step at do_block_tests (timeout)"
- }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "164" "step at do_block_test"
# Test: c_variable-3.5
# Desc: create inner block foo
"create local variable inner_foo"
# step to "foo2 = 0;"
-send_gdb "-exec-step\n"
-gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"166\"\}\r\n$mi_gdb_prompt$" {
- pass "step at do_block_tests"
- }
- timeout { fail "step at do_block_tests (timeout)" }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "166" "step at do_block_test"
# Test: c_variable-3.6
# Desc: create foo2
"delete var inner_foo"
# step to "foo = 0;"
-send_gdb "-exec-step\n"
-gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"168\"\}\r\n$mi_gdb_prompt$" {
- pass "step at do_block_tests"
- }
- timeout { fail "step at do_block_tests (timeout)" }
-}
+mi_step_to "do_block_tests" "" "var-cmd.c" "168" "step at do_block_test"
# Test: c_variable-3.8
# Desc: check that foo2 out of scope (known gdb problem)
clear_xfail *-*-*
# step to "cb = 21;"
-send_gdb "-exec-step\n"
-gdb_expect {
- -re "\\^running\r\n${mi_gdb_prompt}\\*stopped,reason=\"end-stepping-range\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_block_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"171\"\}\r\n$mi_gdb_prompt$" {
- pass "step at do_block_tests"
- }
- timeout { fail "step at do_block_tests (timeout)" }
-}
-
+mi_step_to "do_block_tests" "" "var-cmd.c" "171" "step at do_block_test"
# Test: c_variable-3.9
# Desc: check that only cb is in scope (known gdb problem)
-# Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
+# Copyright (C) 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
"&\"mi_cmd_var_create: unable to create variable object\\\\n\".*113\\^error,msg=\"mi_cmd_var_create: unable to create variable object\"" \
"create out of scope variable"
-mi_gdb_test "200-break-insert do_locals_tests" \
- "200\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"do_locals_tests\",file=\".*var-cmd.c\",line=\"106\",times=\"0\"\}" \
- "break-insert operation"
-
-mi_run_cmd
-# The running part has been checked already by mi_run_cmd
-gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"do_locals_tests\",args=\\\[\\\],file=\".*var-cmd.c\",line=\"106\"\}\r\n$mi_gdb_prompt$" {
- pass "run to do_locals_tests"
- }
- -re ".*$mi_gdb_prompt$" {fail "run to do_locals_tests (2)"}
- timeout {fail "run to do_locals_tests (timeout 2)"}
-}
+mi_runto do_locals_tests
# Test: c_variable-1.4
# Desc: create local variables
-# 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
"delete read watchpoint"
}
-proc test_running_the_program {} {
- global mi_gdb_prompt
- global hex
-
- # Run the program without args, then specify srgs and rerun the program
- # Tests:
- # -exec-run
-
- mi_gdb_test "300-break-insert callee4" \
- "300\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"8\",times=\"0\"\}" \
- "insert breakpoint at callee4"
-
- # mi_gdb_test cannot be used for asynchronous commands because there are
- # two prompts involved and this can lead to a race condition.
- # The following is equivalent to a send_gdb "000-exec-run\n"
- mi_run_cmd
- # The running part has been checked already by mi_run_cmd
- gdb_expect {
- -re "\[\r\n\]*000\\*stopped,reason=\"breakpoint-hit\",bkptno=\"1\",thread-id=\"\[01\]\",frame=\{addr=\"$hex\",func=\"callee4\",args=\\\[\\\],file=\".*basics.c\",line=\"8\"\}\r\n$mi_gdb_prompt$" \
- { pass "run to callee4" }
- -re ".*$mi_gdb_prompt$" {fail "run to callee4 (2)"}
- timeout {fail "run to callee4 (timeout 2)"}
- }
-}
-
proc test_watchpoint_triggering {} {
global mi_gdb_prompt
global hex
}
}
-test_running_the_program
+mi_runto callee4
test_watchpoint_creation_and_listing
#test_rwatch_creation_and_listing
#test_awatch_creation_and_listing