gdb/testsuite/

* gdb.trace/entry-values.c (end): New
	(main): Call end.
	* gdb.trace/entry-values.exp: Load trace-support.exp.  Set
	tracepoint and collect data.  Test entry value is unavailable.
This commit is contained in:
Yao Qi 2013-08-24 01:54:59 +00:00
parent b39a8faf7c
commit b122423813
3 changed files with 59 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2013-08-24 Yao Qi <yao@codesourcery.com>
* gdb.trace/entry-values.c (end): New
(main): Call end.
* gdb.trace/entry-values.exp: Load trace-support.exp. Set
tracepoint and collect data. Test entry value is unavailable.
2013-08-24 Yao Qi <yao@codesourcery.com>
* lib/dwarf.exp (_location): Handle DW_OP_deref_size.

View File

@ -32,6 +32,10 @@ bar (int i)
int global1 = 1;
int global2 = 2;
static void
end (void)
{}
int
main (void)
{
@ -41,5 +45,6 @@ main (void)
global2++;
ret = bar (0);
end ();
return ret;
}

View File

@ -230,3 +230,50 @@ gdb_test_sequence "bt" "bt (2)" {
"\[\r\n\]#1 .* bar \\(i=<optimized out>, i@entry=<optimized out>\\)"
"\[\r\n\]#2 .* main \\(\\)"
}
# Restart GDB and trace.
clean_restart $binfile
load_lib "trace-support.exp"
if ![runto_main] {
fail "Can't run to main to check for trace support"
return -1
}
if ![gdb_target_supports_trace] {
unsupported "target does not support trace"
return -1
}
gdb_test "trace foo" "Tracepoint $decimal at .*"
if [is_amd64_regs_target] {
set spreg "\$rsp"
} elseif [is_x86_like_target] {
set spreg "\$esp"
} else {
set spreg "\$sp"
}
# Collect arguments i and j. Collect 'global1' which is entry value
# of argument i. Don't collect 'global2' to test the entry value of
# argument j.
gdb_trace_setactions "set action for tracepoint 1" "" \
"collect i, j, global1, \(\*\(void \*\*\) \($spreg\)\) @ 64" "^$"
gdb_test_no_output "tstart"
gdb_breakpoint "end"
gdb_continue_to_breakpoint "end"
gdb_test_no_output "tstop"
gdb_test "tfind" "Found trace frame 0, .*" "tfind start"
# Since 'global2' is not collected, j@entry is expected to be 'unavailable'.
gdb_test "bt 1" "#0 .* foo \\(i=\[-\]?$decimal, i@entry=2, j=\[-\]?$decimal, j@entry=<unavailable>\\).*"
gdb_test "tfind" "Target failed to find requested trace frame\..*"