gdb/testsuite/gdb.trace: Deduplicate pcreg/spreg/fpreg.
authorMarcin Kościelnicki <koriakin@0x04.net>
Tue, 10 Nov 2015 08:52:29 +0000 (09:52 +0100)
committerMarcin Kościelnicki <koriakin@0x04.net>
Tue, 10 Nov 2015 19:05:49 +0000 (20:05 +0100)
These variables were used in many gdb.trace tests.  Keep them in one place,
to reduce work needed for new targets.

gdb/testsuite/ChangeLog:

* gdb.trace/backtrace.exp: Use global fpreg/spreg definition, add $
in front.
* gdb.trace/change-loc.exp: Use global pcreg definition.
* gdb.trace/collection.exp: Use global pcreg/fpreg/spreg definition.
* gdb.trace/entry-values.exp: Use global spreg definition, add $
in front.
* gdb.trace/mi-trace-frame-collected.exp: Use global pcreg definition.
* gdb.trace/pending.exp: Likewise.
* gdb.trace/report.exp: Use global pcreg/fpreg/spreg definition.
* gdb.trace/trace-break.exp: Likewise.
* gdb.trace/trace-condition.exp: Use global pcreg definition, add $
in front.
* gdb.trace/unavailable.exp: Use global pcreg/fpreg/spreg definition.
* gdb.trace/while-dyn.exp: Use global fpreg definition, add $
in front.
* lib/trace-support.exp: Define fpreg, spreg, pcreg variables.

13 files changed:
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.trace/backtrace.exp
gdb/testsuite/gdb.trace/change-loc.exp
gdb/testsuite/gdb.trace/collection.exp
gdb/testsuite/gdb.trace/entry-values.exp
gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp
gdb/testsuite/gdb.trace/pending.exp
gdb/testsuite/gdb.trace/report.exp
gdb/testsuite/gdb.trace/trace-break.exp
gdb/testsuite/gdb.trace/trace-condition.exp
gdb/testsuite/gdb.trace/unavailable.exp
gdb/testsuite/gdb.trace/while-dyn.exp
gdb/testsuite/lib/trace-support.exp

index dfc9b7766099da5ca817fa637ff0e826078be78c..0f04109457663dcd99973413ee09e56eac6ac939 100644 (file)
@@ -1,3 +1,22 @@
+2015-11-10  Marcin Kościelnicki  <koriakin@0x04.net>
+
+       * gdb.trace/backtrace.exp: Use global fpreg/spreg definition, add $
+       in front.
+       * gdb.trace/change-loc.exp: Use global pcreg definition.
+       * gdb.trace/collection.exp: Use global pcreg/fpreg/spreg definition.
+       * gdb.trace/entry-values.exp: Use global spreg definition, add $
+       in front.
+       * gdb.trace/mi-trace-frame-collected.exp: Use global pcreg definition.
+       * gdb.trace/pending.exp: Likewise.
+       * gdb.trace/report.exp: Use global pcreg/fpreg/spreg definition.
+       * gdb.trace/trace-break.exp: Likewise.
+       * gdb.trace/trace-condition.exp: Use global pcreg definition, add $
+       in front.
+       * gdb.trace/unavailable.exp: Use global pcreg/fpreg/spreg definition.
+       * gdb.trace/while-dyn.exp: Use global fpreg definition, add $
+       in front.
+       * lib/trace-support.exp: Define fpreg, spreg, pcreg variables.
+
 2015-11-09  Joel Brobecker  <brobecker@adacore.com>
 
        * gdb.ada/fin_fun_out: New testcase.
index f69089b7e5a69ea039e6f492d6bf4faa7f7332a9..c1720294162b6d2959e68ee04bd0831ca95c8dbd 100644 (file)
@@ -140,23 +140,9 @@ gdb_trace_setactions "8.6: setup TP to collect regs, args, and locals" \
        "$tdp4" \
        "collect \$regs, \$args, \$locs" "^$"
 
-if [is_amd64_regs_target] {
-    set fpreg "\$rbp"
-    set spreg "\$rsp"
-} elseif [is_x86_like_target] {
-    set fpreg "\$ebp"
-    set spreg "\$esp"
-} elseif [is_aarch64_target] {
-    set fpreg "\$x29"
-    set spreg "\$sp"
-} else {
-    set fpreg "\$fp"
-    set spreg "\$sp"
-}
-
 gdb_trace_setactions "8.6: setup TP to collect stack mem cast expr" \
        "$tdp6" \
-       "collect $fpreg, \(\*\(void \*\*\) \($spreg\)\) @ 64" "^$"
+       "collect \$$fpreg, \(\*\(void \*\*\) \(\$$spreg\)\) @ 64" "^$"
 
 gdb_test_no_output "tstart" ""
 
index a417ef997514a27ba8088a2119f3d35e1b7e3f05..97c604ef48ef38605b7d7e7310cdcb9f225c99dc 100644 (file)
@@ -58,14 +58,6 @@ if { ![gdb_target_supports_trace] } then {
     return -1
 }
 
-if [is_amd64_regs_target] {
-    set pcreg "rip"
-} elseif [is_x86_like_target] {
-    set pcreg "eip"
-} else {
-    set pcreg "pc"
-}
-
 
 # Set tracepoint during tracing experiment.
 
index 69ad6ee66d4e47bc78bd7a6d7f7da6f0dc911a39..987fb6f900d5842bab904aa98a05f325dacc955c 100644 (file)
@@ -36,24 +36,6 @@ if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug nowarnings}]} {
 set ws "\[\r\n\t \]+"
 set cr "\[\r\n\]+"
 
-if [is_amd64_regs_target] {
-    set fpreg "rbp"
-    set spreg "rsp"
-    set pcreg "rip"
-} elseif [is_x86_like_target] {
-    set fpreg "ebp"
-    set spreg "esp"
-    set pcreg "eip"
-} elseif [is_aarch64_target] {
-    set fpreg "x29"
-    set spreg "sp"
-    set pcreg "pc"
-} else {
-    set fpreg "fp"
-    set spreg "sp"
-    set pcreg "pc"
-}
-
 #
 # Utility procs
 #
index 0cf56151fc3a2e135f2102315ad0a9d0c378f0c7..07aaa228eaba81a02dbd9408a5257baebfe5be9b 100644 (file)
@@ -214,20 +214,12 @@ if ![gdb_target_supports_trace] {
 
 gdb_test "trace foo" "Tracepoint $decimal at .*"
 
-if [is_amd64_regs_target] {
-    set spreg "\$rsp"
-} elseif [is_x86_like_target] {
-    set spreg "\$esp"
-} else {
-    set spreg "\$sp"
-}
-
 # Collect arguments i and j.  Collect 'global1' which is entry value
 # of argument i.  Don't collect 'global2' to test the entry value of
 # argument j.
 
 gdb_trace_setactions "set action for tracepoint 1" "" \
-    "collect i, j, global1, \(\*\(void \*\*\) \($spreg\)\) @ 64" "^$"
+    "collect i, j, global1, \(\*\(void \*\*\) \(\$$spreg\)\) @ 64" "^$"
 
 gdb_test_no_output "tstart"
 
index a7bed0bc36416598e773d4ee3b79966c1193086f..932a5481a36350060d10a05d8104d2ea35d4e537 100644 (file)
@@ -51,20 +51,6 @@ mi_gdb_test "-break-insert -a gdb_recursion_test" \
 mi_gdb_test "-trace-define-variable \$tsv 1" {.*\^done} \
     "-trace-define-variable"
 
-set pcreg ""
-if [is_amd64_regs_target] {
-    set pcreg "rip"
-} elseif [is_x86_like_target] {
-    set pcreg "eip"
-} elseif [is_aarch64_target] {
-    set pcreg "pc"
-} else {
-    # Other ports that support tracepoints should set the name of pc
-    # register here.
-    fail "set the name of pc register"
-    return -1
-}
-
 mi_gdb_test "-break-commands 3 \"collect gdb_char_test\" \"collect gdb_union1_test\" \"collect gdb_struct1_test.l\" \"collect gdb_arr_test\[0\]\" \"collect $${pcreg}\" \"teval \$tsv += 1\" \"collect \$tsv\" \"end\" " \
     {\^done} "set action"
 
index 9938c5ae841237b4997836b0a1a1940d05c02b5a..75e954ac2f72f70f9eb634ebdad216f78a054be1 100644 (file)
@@ -421,6 +421,7 @@ proc pending_tracepoint_with_action_resolved { trace_type } \
     global srcfile
     global lib_sl1
     global gdb_prompt
+    global pcreg
 
     # Start with a fresh gdb.
     clean_restart $executable
@@ -436,13 +437,6 @@ proc pending_tracepoint_with_action_resolved { trace_type } \
        }
     }
 
-    set pcreg "pc"
-    if [is_amd64_regs_target] {
-       set pcreg "rip"
-    } elseif [is_x86_like_target] {
-       set pcreg "eip"
-    }
-
     gdb_trace_setactions "set action for pending tracepoint" "" \
        "collect \$$pcreg" "^$"
 
index b3e90002c70124041b6fc9387b17b3dc908ab45f..53ea943421ba043451f0aa8156e5567b55dbdad6 100644 (file)
@@ -150,24 +150,6 @@ gdb_trace_setactions "9.x: setup TP to collect locals" \
        "$tdp4" \
        "collect \$locs" "^$"
 
-if [is_amd64_regs_target] {
-    set fpreg "rbp"
-    set spreg "rsp"
-    set pcreg "rip"
-} elseif [is_x86_like_target] {
-    set fpreg "ebp"
-    set spreg "esp"
-    set pcreg "eip"
-} elseif [is_aarch64_target] {
-    set fpreg "x29"
-    set spreg "sp"
-    set pcreg "pc"
-} else {
-    set fpreg "fp"
-    set spreg "sp"
-    set pcreg "pc"
-}
-
 gdb_trace_setactions "9.x: setup TP to collect stack memory" \
        "$tdp5" \
        "collect \$$fpreg, \*\(void \*\*\) \$$spreg @ 64" "^$"
index 1f576011968b497f1f4f7aa3bd299753780247ee..4329f3a9d600b65c3ae4e0bba60f8b496916382a 100644 (file)
@@ -37,22 +37,6 @@ if ![gdb_target_supports_trace] {
     return -1
 }
 
-set fpreg "fp"
-set spreg "sp"
-set pcreg "pc"
-
-if [is_amd64_regs_target] {
-    set fpreg "rbp"
-    set spreg "rsp"
-    set pcreg "rip"
-} elseif [is_x86_like_target] {
-    set fpreg "ebp"
-    set spreg "esp"
-    set pcreg "eip"
-} elseif [is_aarch64_target] {
-    set fpreg "x29"
-}
-
 # Set breakpoint and tracepoint at the same address.
 
 proc break_trace_same_addr_1 { trace_type option } \
index aec04019df29f96bd21758905c22b15dbfb93041..15efb68fe945fe6455519fe90ac8dd7694f38399 100644 (file)
@@ -21,16 +21,6 @@ set expfile $testfile.exp
 # Some targets have leading underscores on assembly symbols.
 set additional_flags [gdb_target_symbol_prefix_flags]
 
-if [is_amd64_regs_target] {
-    set pcreg "\$rip"
-} elseif [is_x86_like_target] {
-    set pcreg "\$eip"
-} elseif [is_aarch64_target] {
-    set pcreg "\$pc"
-} else {
-    set pcreg "\$pc"
-}
-
 if [prepare_for_testing $expfile $executable $srcfile \
        [list debug $additional_flags]] {
     untested "failed to prepare for trace tests"
@@ -139,7 +129,7 @@ proc 18955_i386_failure { trace_command } {
 foreach trace_command { "trace" "ftrace" } {
     # This condition is always true as the PC should be set to the tracepoint
     # address when hit.
-    test_tracepoints $trace_command "$pcreg == *set_point" 10
+    test_tracepoints $trace_command "\$$pcreg == *set_point" 10
 
     # Can we read local variables?
     test_tracepoints $trace_command "anarg == 100 || anarg == 200" 2 18955_x86_64_failure
index 910c1dd5de2cd2b80c1f0ff23a93e161fa48af04..5f70fc52a6c1af9b3c27b95c56a7445acc501fc2 100644 (file)
@@ -26,24 +26,6 @@ if {[prepare_for_testing $testfile.exp $testfile $srcfile \
 set ws "\[\r\n\t \]+"
 set cr "\[\r\n\]+"
 
-if [is_amd64_regs_target] {
-    set fpreg "rbp"
-    set spreg "rsp"
-    set pcreg "rip"
-} elseif [is_x86_like_target] {
-    set fpreg "ebp"
-    set spreg "esp"
-    set pcreg "eip"
-} elseif [is_aarch64_target] {
-    set fpreg "x29"
-    set spreg "sp"
-    set pcreg "pc"
-} else {
-    set fpreg "fp"
-    set spreg "sp"
-    set pcreg "pc"
-}
-
 #
 # Utility procs
 #
index fe4535ec0ef5e88ffa8fe798cd0fa5e45332d14c..765edfe14389b5a8cec2f1555e40c4b6186a3990 100644 (file)
@@ -43,16 +43,6 @@ if { ![gdb_target_supports_trace] } then {
 # test while-stepping dynamically (live target)
 #
 
-if [is_amd64_regs_target] {
-    set fpreg "\$rbp"
-} elseif [is_x86_like_target] {
-    set fpreg "\$ebp"
-} elseif [is_aarch64_target] {
-    set fpreg "\$x29"
-} else {
-    set fpreg "\$fp"
-}
-
 proc test_while_stepping { while_stepping } {
     global fpreg
     global decimal
@@ -74,7 +64,7 @@ proc test_while_stepping { while_stepping } {
 
     gdb_trace_setactions "5.12: define $while_stepping <stepcount>" \
        "" \
-       "collect $fpreg" "^$" \
+       "collect \$$fpreg" "^$" \
        "$while_stepping 5" "^$" \
        "collect p" "^$" \
        "end" "^$" \
index 0af73b4e1c9783ce8d7550cf26617b496d818988..4ec8cac98b31508c061aae2d84a581483385ffeb 100644 (file)
 #
 
 
+#
+# Program counter / stack pointer / frame pointer for supported targets.
+# Used in many tests, kept here to avoid duplication.
+#
+
+if [is_amd64_regs_target] {
+    set fpreg "rbp"
+    set spreg "rsp"
+    set pcreg "rip"
+} elseif [is_x86_like_target] {
+    set fpreg "ebp"
+    set spreg "esp"
+    set pcreg "eip"
+} elseif [is_aarch64_target] {
+    set fpreg "x29"
+    set spreg "sp"
+    set pcreg "pc"
+} else {
+    set fpreg "fp"
+    set spreg "sp"
+    set pcreg "pc"
+}
+
 #
 # Procedure: gdb_target_supports_trace
 # Returns true if GDB is connected to a target that supports tracing.