Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Unified Diff: gdb/testsuite/gdb.mi/mi-reverse.exp

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gdb/testsuite/gdb.mi/mi-return.exp ('k') | gdb/testsuite/gdb.mi/mi-simplerun.exp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gdb/testsuite/gdb.mi/mi-reverse.exp
diff --git a/gdb/testsuite/gdb.mi/mi-reverse.exp b/gdb/testsuite/gdb.mi/mi-reverse.exp
index 08025bddf2db990479d01471195bb7701f66257d..f65493dfb799e687f708e8967c5b57e75214a700 100644
--- a/gdb/testsuite/gdb.mi/mi-reverse.exp
+++ b/gdb/testsuite/gdb.mi/mi-reverse.exp
@@ -1,173 +1,172 @@
-# Copyright 2009, 2011-2012 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
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# Test Machine interface (MI) operations
-# Verify that, using the MI, we can run a simple program in both forward
-# and reverse directions with the following execution commands:
-# - exec-continue
-# - exec-finish
-# - exec-next
-# - exec-step
-# - exec-next-instruction
-# - exec-step-instruction
-
-# The goal is not to test gdb functionality, which is done by other tests,
-# but to verify the correct output response to MI operations.
-#
-
-if ![target_info exists gdb,can_reverse] {
- return
-}
-
-load_lib mi-support.exp
-set MIFLAGS "-i=mi"
-
-gdb_exit
-if [mi_gdb_start] {
- continue
-}
-
-set testfile mi-reverse
-set srcfile basics.c
-set binfile ${objdir}/${subdir}/mi2-reverse
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
- untested ${testfile}.exp
- return -1
-}
-
-mi_run_to_main
-
-if [target_info exists gdb,use_precord] {
- # Activate process record/replay
- if [mi_gdb_test "-interpreter-exec console record" \
- {\^done} "Turn on process record"] {
- warning "Fail to activate process record/replay, tests in this group will not be performed.\n";
- return -1
- }
-}
-
-# Locate line numbers in basics.c.
-set line_callee4_head [gdb_get_line_number "callee4 ("]
-set line_callee4_body [expr $line_callee4_head + 2]
-set line_callee3_head [gdb_get_line_number "callee3 ("]
-set line_callee3_body [expr $line_callee3_head + 2]
-set line_callee3_close [expr $line_callee3_head + 3]
-set line_callee2_head [gdb_get_line_number "callee2 ("]
-set line_callee2_body [expr $line_callee2_head + 2]
-set line_callee2_close [expr $line_callee2_head + 3]
-set line_callee1_head [gdb_get_line_number "callee1 ("]
-set line_callee1_body [expr $line_callee1_head + 2]
-set line_callee1_close [expr $line_callee1_head + 3]
-set line_callme_head [gdb_get_line_number "callme"]
-set line_callme_body [expr $line_callme_head + 2]
-set line_main_head [gdb_get_line_number "main ("]
-set line_main_body [expr $line_main_head + 2]
-set line_main_hello [gdb_get_line_number "Hello, World!"]
-set line_main_callme_1 [gdb_get_line_number "callme (1"]
-
-# Forward execute to the callme() function, so that we can
-# execute backward from there.
-mi_continue_to callme
-mi_delete_breakpoints
-
-proc test_controlled_execution_reverse {} {
- global mi_gdb_prompt
- global srcfile
- global hex
-
- global line_callee4_head line_callee4_body
- global line_callee3_head line_callee3_body line_callee3_close
- global line_callee2_head line_callee2_body line_callee2_close
- global line_callee1_head line_callee1_body line_callee1_close
- global line_main_head line_main_body
- global line_main_hello line_main_callme_1
-
- # Test exec-reverse-finish
-
- mi_execute_to "exec-finish --reverse" \
- "end-stepping-range" "main" "" \
- "basics.c" $line_main_callme_1 "" \
- "reverse finish from callme"
-
- # Test exec-reverse-next
- # It takes two steps to get back to the previous line,
- # as the first step moves us to the start of the current line,
- # and the one after that moves back to the previous line.
-
- mi_execute_to "exec-next --reverse 2" \
- "end-stepping-range" "main" "" \
- "basics.c" $line_main_hello "" \
- "reverse next to get over the call to do_nothing"
-
- # Test exec-reverse-step
-
- mi_execute_to "exec-step --reverse" \
- "end-stepping-range" "callee1" \
- "\{name=\"intarg\",value=\"2\"\},\{name=\"strarg\",value=\"$hex \\\\\"A string argument\.\\\\\"\"\},\{name=\"fltarg\",value=\"3.5\"\}" \
- "basics.c" $line_callee1_close "" \
- "reverse step to callee1"
-
- mi_execute_to "exec-step --reverse" \
- "end-stepping-range" "callee2" \
- "\{name=\"intarg\",value=\"2\"\},\{name=\"strarg\",value=\"$hex \\\\\"A string argument\.\\\\\"\"\}" \
- "basics.c" $line_callee2_close "" \
- "reverse step to callee2"
-
- mi_execute_to "exec-step --reverse" \
- "end-stepping-range" "callee3" \
- "\{name=\"strarg\",value=\"$hex \\\\\"A string argument\.\\\\\"\"\}" \
- "basics.c" $line_callee3_close "" \
- "reverse step to callee3"
-
- mi_execute_to "exec-step --reverse" \
- "end-stepping-range" "callee4" "" \
- "basics.c" "\[0-9\]+" "" \
- "reverse step to callee4"
-
- # Test exec-reverse-[step|next]-instruction
-
- mi_execute_to "exec-step-instruction --reverse" \
- "end-stepping-range" "callee4" "" \
- "basics.c" "\[0-9\]+" "" \
- "reverse-step-instruction at callee4"
-
- mi_execute_to "exec-next-instruction --reverse" \
- "end-stepping-range" "callee4" "" \
- "basics.c" "\[0-9\]+" "" \
- "reverse-next-instruction at callee4"
-
- # Test exec-reverse-continue
-
- mi_create_breakpoint "-t basics.c:$line_callee3_head" \
- 3 del callee3 ".*basics.c" $line_callee3_head $hex \
- "insert temp breakpoint at basics.c:$line_callee3_head"
-
- mi_execute_to "exec-continue --reverse" \
- "breakpoint-hit" "callee3" \
- "\{name=\"strarg\",value=\"$hex \\\\\"A string argument\.\\\\\"\"\}" \
- "basics.c" "\[0-9\]+" \
- { "" "disp=\"del\""} \
- "reverse-continue at callee3"
-
- mi_execute_to "exec-continue --reverse" \
- "" "main" "" \
- "basics.c" $line_main_body "" \
- "reverse-continue at main"
-}
-
-test_controlled_execution_reverse
-
-mi_gdb_exit
-return 0
+# Copyright 2009, 2011-2012 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
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Test Machine interface (MI) operations
+# Verify that, using the MI, we can run a simple program in both forward
+# and reverse directions with the following execution commands:
+# - exec-continue
+# - exec-finish
+# - exec-next
+# - exec-step
+# - exec-next-instruction
+# - exec-step-instruction
+
+# The goal is not to test gdb functionality, which is done by other tests,
+# but to verify the correct output response to MI operations.
+#
+
+if ![supports_reverse] {
+ return
+}
+
+load_lib mi-support.exp
+set MIFLAGS "-i=mi"
+
+gdb_exit
+if [mi_gdb_start] {
+ continue
+}
+
+standard_testfile basics.c
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ untested ${testfile}.exp
+ return -1
+}
+
+mi_run_to_main
+
+if [supports_process_record] {
+ # Activate process record/replay
+ if [mi_gdb_test "-interpreter-exec console record" \
+ {\^done} "Turn on process record"] {
+ warning "Fail to activate process record/replay, tests in this group will not be performed.\n";
+ return -1
+ }
+}
+
+# Locate line numbers in basics.c.
+set line_callee4_head [gdb_get_line_number "callee4 ("]
+set line_callee4_body [expr $line_callee4_head + 2]
+set line_callee3_head [gdb_get_line_number "callee3 ("]
+set line_callee3_body [expr $line_callee3_head + 2]
+set line_callee3_close [expr $line_callee3_head + 3]
+set line_callee2_head [gdb_get_line_number "callee2 ("]
+set line_callee2_body [expr $line_callee2_head + 2]
+set line_callee2_close [expr $line_callee2_head + 3]
+set line_callee1_head [gdb_get_line_number "callee1 ("]
+set line_callee1_body [expr $line_callee1_head + 2]
+set line_callee1_close [expr $line_callee1_head + 3]
+set line_callme_head [gdb_get_line_number "callme"]
+set line_callme_body [expr $line_callme_head + 2]
+set line_main_head [gdb_get_line_number "main ("]
+set line_main_body [expr $line_main_head + 2]
+set line_main_hello [gdb_get_line_number "Hello, World!"]
+set line_main_callme_1 [gdb_get_line_number "callme (1"]
+
+# Forward execute to the callme() function, so that we can
+# execute backward from there.
+mi_continue_to callme
+mi_delete_breakpoints
+
+proc test_controlled_execution_reverse {} {
+ global mi_gdb_prompt
+ global srcfile
+ global hex
+
+ global line_callee4_head line_callee4_body
+ global line_callee3_head line_callee3_body line_callee3_close
+ global line_callee2_head line_callee2_body line_callee2_close
+ global line_callee1_head line_callee1_body line_callee1_close
+ global line_main_head line_main_body
+ global line_main_hello line_main_callme_1
+
+ # Test exec-reverse-finish
+
+ mi_execute_to "exec-finish --reverse" \
+ "end-stepping-range" "main" "" \
+ "basics.c" $line_main_callme_1 "" \
+ "reverse finish from callme"
+
+ # Test exec-reverse-next
+ # It takes two steps to get back to the previous line,
+ # as the first step moves us to the start of the current line,
+ # and the one after that moves back to the previous line.
+
+ mi_execute_to "exec-next --reverse 2" \
+ "end-stepping-range" "main" "" \
+ "basics.c" $line_main_hello "" \
+ "reverse next to get over the call to do_nothing"
+
+ # Test exec-reverse-step
+
+ mi_execute_to "exec-step --reverse" \
+ "end-stepping-range" "callee1" \
+ "\{name=\"intarg\",value=\"2\"\},\{name=\"strarg\",value=\"$hex \\\\\"A string argument\.\\\\\"\"\},\{name=\"fltarg\",value=\"3.5\"\}" \
+ "basics.c" $line_callee1_close "" \
+ "reverse step to callee1"
+
+ mi_execute_to "exec-step --reverse" \
+ "end-stepping-range" "callee2" \
+ "\{name=\"intarg\",value=\"2\"\},\{name=\"strarg\",value=\"$hex \\\\\"A string argument\.\\\\\"\"\}" \
+ "basics.c" $line_callee2_close "" \
+ "reverse step to callee2"
+
+ mi_execute_to "exec-step --reverse" \
+ "end-stepping-range" "callee3" \
+ "\{name=\"strarg\",value=\"$hex \\\\\"A string argument\.\\\\\"\"\}" \
+ "basics.c" $line_callee3_close "" \
+ "reverse step to callee3"
+
+ mi_execute_to "exec-step --reverse" \
+ "end-stepping-range" "callee4" "" \
+ "basics.c" "\[0-9\]+" "" \
+ "reverse step to callee4"
+
+ # Test exec-reverse-[step|next]-instruction
+
+ mi_execute_to "exec-step-instruction --reverse" \
+ "end-stepping-range" "callee4" "" \
+ "basics.c" "\[0-9\]+" "" \
+ "reverse-step-instruction at callee4"
+
+ mi_execute_to "exec-next-instruction --reverse" \
+ "end-stepping-range" "callee4" "" \
+ "basics.c" "\[0-9\]+" "" \
+ "reverse-next-instruction at callee4"
+
+ # Test exec-reverse-continue
+
+ mi_create_breakpoint "-t basics.c:$line_callee3_head" \
+ 3 del callee3 ".*basics.c" $line_callee3_head $hex \
+ "insert temp breakpoint at basics.c:$line_callee3_head"
+
+ mi_execute_to "exec-continue --reverse" \
+ "breakpoint-hit" "callee3" \
+ "\{name=\"strarg\",value=\"$hex \\\\\"A string argument\.\\\\\"\"\}" \
+ "basics.c" "\[0-9\]+" \
+ { "" "disp=\"del\""} \
+ "reverse-continue at callee3"
+
+ mi_execute_to "exec-continue --reverse" \
+ "" "main" "" \
+ "basics.c" $line_main_body "" \
+ "reverse-continue at main"
+}
+
+test_controlled_execution_reverse
+
+mi_gdb_exit
+return 0
« no previous file with comments | « gdb/testsuite/gdb.mi/mi-return.exp ('k') | gdb/testsuite/gdb.mi/mi-simplerun.exp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698