aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.trace
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2010-03-12 04:04:40 +0000
committerPedro Alves <palves@redhat.com>2010-03-12 04:04:40 +0000
commit6a8f26716ab741331f724f92713d982fe47126da (patch)
treee4146dc4cf86ea8db85b3c4da03adf6b3fcda1bc /gdb/testsuite/gdb.trace
parent2f4d88753bc52c1104d9418fb843154ee8ef610c (diff)
downloadgdb-6a8f26716ab741331f724f92713d982fe47126da.zip
gdb-6a8f26716ab741331f724f92713d982fe47126da.tar.gz
gdb-6a8f26716ab741331f724f92713d982fe47126da.tar.bz2
* 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.
Diffstat (limited to 'gdb/testsuite/gdb.trace')
-rw-r--r--gdb/testsuite/gdb.trace/backtrace.exp15
-rw-r--r--gdb/testsuite/gdb.trace/report.exp30
-rw-r--r--gdb/testsuite/gdb.trace/tfind.exp5
-rw-r--r--gdb/testsuite/gdb.trace/while-dyn.exp10
4 files changed, 49 insertions, 11 deletions
diff --git a/gdb/testsuite/gdb.trace/backtrace.exp b/gdb/testsuite/gdb.trace/backtrace.exp
index 47d75be..ea1a371 100644
--- a/gdb/testsuite/gdb.trace/backtrace.exp
+++ b/gdb/testsuite/gdb.trace/backtrace.exp
@@ -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" "" ""
diff --git a/gdb/testsuite/gdb.trace/report.exp b/gdb/testsuite/gdb.trace/report.exp
index fb7d6b0..9a038cb 100644
--- a/gdb/testsuite/gdb.trace/report.exp
+++ b/gdb/testsuite/gdb.trace/report.exp
@@ -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"
diff --git a/gdb/testsuite/gdb.trace/tfind.exp b/gdb/testsuite/gdb.trace/tfind.exp
index 2f65436..9928c69 100644
--- a/gdb/testsuite/gdb.trace/tfind.exp
+++ b/gdb/testsuite/gdb.trace/tfind.exp
@@ -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)" }
}
diff --git a/gdb/testsuite/gdb.trace/while-dyn.exp b/gdb/testsuite/gdb.trace/while-dyn.exp
index de31980..d379e1d 100644
--- a/gdb/testsuite/gdb.trace/while-dyn.exp
+++ b/gdb/testsuite/gdb.trace/while-dyn.exp
@@ -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" "^$" \