* 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.
This commit is contained in:
Yao Qi 2013-07-31 00:44:42 +00:00
parent 680558e836
commit de74e63a56
4 changed files with 47 additions and 0 deletions

View File

@ -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.

View File

@ -1,3 +1,8 @@
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

View File

@ -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"
}
}
}

View File

@ -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);