diff options
author | Yao Qi <yao@codesourcery.com> | 2013-07-31 00:44:42 +0000 |
---|---|---|
committer | Yao Qi <yao@codesourcery.com> | 2013-07-31 00:44:42 +0000 |
commit | de74e63a5651500a398a4166405c1bfe4a4fe2fd (patch) | |
tree | 91904447e2ce04309cf1789c023d48a3357dc35f /gdb | |
parent | 680558e8361c727a81c7d6b77461e57fedf308c1 (diff) | |
download | gdb-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/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/testsuite/gdb.trace/backtrace.exp | 31 | ||||
-rw-r--r-- | gdb/tracepoint.c | 6 |
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); |