* gdb.trace/backtrace.exp: Adjust for x86 and x86_64.
authorPedro Alves <palves@redhat.com>
Fri, 12 Mar 2010 04:04:40 +0000 (04:04 +0000)
committerPedro Alves <palves@redhat.com>
Fri, 12 Mar 2010 04:04:40 +0000 (04:04 +0000)
* gdb.trace/report.exp: Adjust for x86 and x86_64.
Issue a tfind end before looking for a tracepoint frame.
* gdb.trace/tfind.exp: Adjust tstatus output.
Adjust disassembly output.
* gdb.trace/while-dyn.exp: Adjust for x86 and x86_64.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.trace/backtrace.exp
gdb/testsuite/gdb.trace/report.exp
gdb/testsuite/gdb.trace/tfind.exp
gdb/testsuite/gdb.trace/while-dyn.exp

index ae6658a7066e8ec3585e3c71dec3b3184cc54846..2d6fbcd4b6b1c173307af17f155839636ef51245 100644 (file)
@@ -1,3 +1,12 @@
+2010-03-12  Pedro Alves  <pedro@codesourcery.com>
+       * gdb.trace/backtrace.exp: Adjust for x86 and x86_64.
+       * gdb.trace/report.exp: Adjust for x86 and x86_64.
+       Issue a tfind end before looking for a tracepoint frame.
+       * gdb.trace/tfind.exp: Adjust tstatus output.
+       Adjust disassembly output.
+       * gdb.trace/while-dyn.exp: Adjust for x86 and x86_64.
+
 2010-03-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * gdb.base/break-interp.exp: Create new displacement parameter value
index 47d75be5c5970e4475f98417503725158bd2666e..ea1a3718b945efa3041d92d4ab3507b5a7dcedc7 100644 (file)
@@ -146,9 +146,20 @@ gdb_trace_setactions "8.6: setup TP to collect regs, args, and locals" \
        "$tdp4" \
        "collect \$regs, \$args, \$locs" "^$"
 
+if [istarget "x86_64-*"] then {
+    set fpreg "\$rbp"
+    set spreg "\$rsp"
+} elseif [istarget "i?86-*"] then {
+    set fpreg "\$ebp"
+    set spreg "\$esp"
+} else {
+    set fpreg "\$fp"
+    set spreg "\$sp"
+}
+
 gdb_trace_setactions "8.6: setup TP to collect stack mem cast expr" \
-       "$tdp6" \
-       "collect \$fp, \(\*\(void \*\*\) \(\$sp\)\) @ 64" "^$"
+       "$tdp6" \
+       "collect $fpreg, \(\*\(void \*\*\) \($spreg\)\) @ 64" "^$"
 
 gdb_test "tstart" "" ""
 
index fb7d6b0b3b115c247bdfe3d97ce2c1803a23f070..9a038cbbe7d1a6f3c8af4853e23fae9a8d1ece11 100644 (file)
@@ -155,9 +155,23 @@ gdb_trace_setactions "9.x: setup TP to collect locals" \
        "$tdp4" \
        "collect \$locs" "^$"
 
+if [istarget "x86_64-*"] then {
+    set fpreg "rbp"
+    set spreg "rsp"
+    set pcreg "rip"
+} elseif [istarget "i?86-*"] then {
+    set fpreg "ebp"
+    set spreg "esp"
+    set pcreg "eip"
+} else {
+    set fpreg "fp"
+    set spreg "sp"
+    set pcreg "pc"
+}
+
 gdb_trace_setactions "9.x: setup TP to collect stack memory" \
        "$tdp5" \
-       "collect \$fp, \*\(void \*\*\) \$sp @ 64" "^$"
+       "collect \$$fpreg, \*\(void \*\*\) \$$spreg @ 64" "^$"
 
 gdb_trace_setactions "9.x: setup TP to collect expressions" \
        "$tdp6" \
@@ -193,10 +207,11 @@ gdb_tfind_test "9.1: find frame for TP $tdp2" "tracepoint $tdp2" \
 
 # regs were collected at tdp2.
 # How to match for the output of "info registers" on an unknown architecture?
-# For now, assume that every architecture has a register called "pc".
+# For now, assume that most architectures have a register called "pc".
+
 gdb_test "tdump" \
-       "\[\r\n\]pc .*" \
-       "9.1: tdump, regs collected"
+       "\[\r\n\]$pcreg .*" \
+       "9.1: tdump, regs collected"
 
 gdb_tfind_test "9.1: find frame for TP $tdp3" "tracepoint $tdp3" \
        "\$tracepoint" "$tdp3"
@@ -219,8 +234,8 @@ gdb_tfind_test "9.1: find frame for TP $tdp5" "tracepoint $tdp5" \
 
 # stack was collected at tdp5, plus the frame pointer
 gdb_test "tdump" \
-       ".fp = .*sp @ 64 = .*" \
-       "9.1: tdump, memrange collected"
+       ".$fpreg = .*$spreg @ 64 = .*" \
+       "9.1: tdump, memrange collected"
 
 gdb_tfind_test "9.1: find frame for TP $tdp6" "tracepoint $tdp6" \
        "\$tracepoint" "$tdp6"
@@ -321,6 +336,7 @@ gdb_expect {
     }
 }
 
+gdb_tfind_test "12.2: tfind end, selects no frame" "end" "-1"
 gdb_tfind_test "12.2: find first TDP #2 frame" "tracepoint $tdp2" \
        "\$tracepoint" "$tdp2"
 
@@ -344,6 +360,7 @@ gdb_expect {
     }
 }
 
+gdb_tfind_test "12.3: tfind end, selects no frame" "end" "-1"
 gdb_tfind_test "12.3: find first TDP #3 frame" "tracepoint $tdp3" \
        "\$tracepoint" "$tdp3"
 
@@ -367,6 +384,7 @@ gdb_expect {
     }
 }
 
+gdb_tfind_test "12.4: tfind end, selects no frame" "end" "-1"
 gdb_tfind_test "12.4: find first TDP #6 frame" "tracepoint $tdp6" \
        "\$tracepoint" "$tdp6"
 
index 2f65436dcc8418030a83195affd1e008c1b3662f..9928c69f59fa26a5778a18a32d47e7cf8e854173 100644 (file)
@@ -147,7 +147,8 @@ gdb_expect {
 gdb_test "help tstop" "Stop trace data collection." "7.2: help tstop"
 
 # test tstatus (when trace off)
-gdb_test "tstatus" "\[Tt\]race.* not running.*" "test tstatus off"
+gdb_test "tstatus" "Trace stopped by a tstop command.*" \
+    "test tstatus off after tstop"
 
 ## record starting PC
 set save_pc [gdb_readexpr "(unsigned long) \$pc"];
@@ -333,7 +334,7 @@ set timeout 60
 send_gdb "disassemble gdb_c_test\n"
 # look for disassembly of function label
 gdb_expect {
-    -re "<gdb_c_test>:.*$gdb_prompt $"      { pass "8.36: trace disassembly" }
+    -re "<gdb_c_test(\.\[0-9\]+|)>:.*End of assembler dump.*$gdb_prompt $"      { pass "8.36: trace disassembly" }
     -re ".*$gdb_prompt $"                   { fail "8.36: trace disassembly" }
     timeout                       { fail "8.36: trace disassembly (timeout)" }
 }
index de319801992638ca613dd9d4a77d8ddb24e2e427..d379e1dc0dc82c8bd44842857e7415e8f1179c35 100644 (file)
@@ -63,9 +63,17 @@ gdb_test "trace gdb_c_test" \
        "Tracepoint $decimal at .*" \
        "Set tracepoint at gdb_c_test"
 
+if [istarget "x86_64-*"] then {
+    set fpreg "\$rbp"
+} elseif [istarget "i?86-*"] then {
+    set fpreg "\$ebp"
+} else {
+    set fpreg "\$fp"
+}
+
 gdb_trace_setactions "5.12: define while-stepping <stepcount>" \
        "" \
-       "collect \$fp" "^$" \
+       "collect $fpreg" "^$" \
        "while-stepping 5" "^$" \
        "collect p" "^$" \
        "end" "^$" \