aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorYao Qi <yao@codesourcery.com>2013-07-31 00:44:42 +0000
committerYao Qi <yao@codesourcery.com>2013-07-31 00:44:42 +0000
commitde74e63a5651500a398a4166405c1bfe4a4fe2fd (patch)
tree91904447e2ce04309cf1789c023d48a3357dc35f /gdb
parent680558e8361c727a81c7d6b77461e57fedf308c1 (diff)
downloadgdb-de74e63a5651500a398a4166405c1bfe4a4fe2fd.zip
gdb-de74e63a5651500a398a4166405c1bfe4a4fe2fd.tar.gz
gdb-de74e63a5651500a398a4166405c1bfe4a4fe2fd.tar.bz2
gdb/
* tracepoint.c (trace_dump_command): Select the current frame. gdb/testsuite/ * gdb.trace/backtrace.exp (gdb_backtrace_tdp_4): Test command 'tdump' on stack frame 0 and 1 respectively.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/testsuite/ChangeLog5
-rw-r--r--gdb/testsuite/gdb.trace/backtrace.exp31
-rw-r--r--gdb/tracepoint.c6
4 files changed, 47 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b9641a0..129b23e 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2013-07-31 Pedro Alves <pedro@codesourcery.com>
+ Yao Qi <yao@codesourcery.com>
+
+ * tracepoint.c (trace_dump_command): Select the current frame.
+
2013-07-30 Doug Evans <dje@google.com>
* dwarf2read.c (process_queue): Add type signature to debug output.
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 12460df..41d41f7 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2013-07-31 Yao Qi <yao@codesourcery.com>
+ * gdb.trace/backtrace.exp (gdb_backtrace_tdp_4): Test command
+ 'tdump' on stack frame 0 and 1 respectively.
+
+2013-07-31 Yao Qi <yao@codesourcery.com>
+
PR gdb/13443
* gdb.trace/backtrace.exp (gdb_backtrace_tdp_3): Add parameter
'traceframe'. Wrap test with with_test_prefix.
diff --git a/gdb/testsuite/gdb.trace/backtrace.exp b/gdb/testsuite/gdb.trace/backtrace.exp
index e40428f..c3a7ec3 100644
--- a/gdb/testsuite/gdb.trace/backtrace.exp
+++ b/gdb/testsuite/gdb.trace/backtrace.exp
@@ -230,6 +230,37 @@ proc gdb_backtrace_tdp_4 { msg depth traceframe } {
fail "$msg (fewer than $depth stack frames found)"
}
}
+
+ set output_string0 ""
+ # Match the output of command 'tdump' and save it in
+ # $output_string0.
+ set test "tdump on frame 0"
+ gdb_test_multiple "tdump" $test {
+ -re "tdump\[\r\n\]+(.*)\[\r\n\]+$gdb_prompt $" {
+ set output_string0 $expect_out(1,string)
+ }
+ }
+
+ gdb_test "up" ".*" ""
+
+ # Test that command 'tdump' still works properly when the
+ # selected frame is not the current frame, and save the output
+ # in $output_string1.
+ set test "tdump on frame 1"
+ set output_string1 ""
+ gdb_test_multiple "tdump" $test {
+ -re "tdump\[\r\n\]+(.*)\[\r\n\]+$gdb_prompt $" {
+ set output_string1 $expect_out(1,string)
+ }
+ }
+
+ # Output of 'tdump' on frame 0 and frame 1 should be
+ # identical.
+ if ![string compare $output_string0 $output_string1] {
+ pass "tdump output"
+ } else {
+ fail "tdump output"
+ }
}
}
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index 8b70bd3..ce61fb7 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -3065,6 +3065,12 @@ trace_dump_command (char *args, int from_tty)
tracepoint_number, traceframe_number);
old_chain = make_cleanup (null_cleanup, NULL);
+
+ /* This command only makes sense for the current frame, not the
+ selected frame. */
+ make_cleanup_restore_current_thread ();
+ select_frame (get_current_frame ());
+
actions = all_tracepoint_actions_and_cleanup (loc->owner);
trace_dump_actions (actions, 0, stepping_frame, from_tty);