[PATCH] add testsuite for for backtrace commands with tfile to test the tfile memory read

Hui Zhu
2012-06-20T10:09:13Z

Hi,

This test is for the fix in
http://sourceware.org/ml/gdb-patches/2012-06/msg00504.html
I test it in amd64 and it work OK.

Please help me review it.

Best,
Hui

2012-06-20 Hui Zhu <hui_zhu@mentor.com>

* gdb.trace/tfile.exp: Add new test for backtrace commands
with tfile to test the tfile memory read.
---
testsuite/gdb.trace/tfile.exp | 52 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)

--- a/testsuite/gdb.trace/tfile.exp
+++ b/testsuite/gdb.trace/tfile.exp
@@ -117,3 +117,55 @@ Not looking at any trace frame.*" \
gdb_test \
"interpreter-exec mi \"-target-select tfile basic.tf\"" \
"\\^connected.*"
+
+#Test the backtrace commands with tfile to test the tfile memory read
+remote_file host delete bt.tf
+
+gdb_exit
+gdb_start
+
+gdb_load $binfile
+
+runto_main
+
+gdb_delete_tracepoints
+set tp1 [gdb_gettpnum write_error_trace_file];
+
+if { [istarget i?86-*-*] } {
+ gdb_trace_setactions "Set actions for collect stack" \
+ "$tp1" \
+ "collect *(unsigned char *)\$esp@128" "^$"
+} elseif {[istarget x86_64-*-* ]} {
+ gdb_trace_setactions "Set actions for collect stack" \
+ "$tp1" \
+ "collect *(unsigned char *)\$rsp@128" "^$"
+} elseif {[istarget arm*-*-* ] || [istarget mips*-*-* ]} {
+ gdb_trace_setactions "Set actions for collect stack" \
+ "$tp1" \
+ "collect *(unsigned char *)\$sp@128" "^$"
+} else {
+ unsupported "don't know howto use tracepoint collect stack in this target"
+ continue
+}
+
+gdb_test_no_output "tstart"
+gdb_test "break done_making_trace_files" ".*" ""
+gdb_test "continue" ".*" ""
+gdb_test_no_output "tstop"
+gdb_test "tsave ./bt.tf" ".*" ""
+
+gdb_exit
+gdb_start
+
+gdb_load $binfile
+
+gdb_test "target tfile bt.tf" "Created tracepoint.*" "load trace file bt.tf"
+gdb_test "tfind 0" \
+ "Found trace frame 0, tracepoint \[0-9\]+.
+\#0 write_error_trace_file ().*" \
+ "tfind 0 on trace file bt.tf"
+
+gdb_test "backtrace" \
+"\#0 write_error_trace_file ().*
+\#1 .* in main .*" \
+ "backtrace on trace file bt.tf"