diff options
Diffstat (limited to 'gdb/testsuite/gdb.btrace/delta.exp')
-rw-r--r-- | gdb/testsuite/gdb.btrace/delta.exp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.btrace/delta.exp b/gdb/testsuite/gdb.btrace/delta.exp new file mode 100644 index 0000000..e606751 --- /dev/null +++ b/gdb/testsuite/gdb.btrace/delta.exp @@ -0,0 +1,68 @@ +# This testcase is part of GDB, the GNU debugger. +# +# Copyright 2013 Free Software Foundation, Inc. +# +# Contributed by Intel Corp. <markus.t.metzger@intel.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# check for btrace support +if { [skip_btrace_tests] } { return -1 } + +# start inferior +standard_testfile x86-record_goto.S +if [prepare_for_testing delta.exp $testfile $srcfile] { + return -1 +} +if ![runto_main] { + return -1 +} + +# proceed to some sequential code +gdb_test "next" + +# start tracing +gdb_test_no_output "record btrace" + +# we start without trace +with_test_prefix "no trace" { + gdb_test "info record" [join [list \ + "Active record target: record-btrace" \ + "Recorded 0 instructions in 0 functions for .*" \ + ] "\r\n"] + gdb_test "record instruction-history" "No trace\." + gdb_test "record function-call-history" "No trace\." +} + +# we record each single-step, even if we have not seen a branch, yet. +gdb_test "stepi" + +proc check_trace {} { + gdb_test "info record" [join [list \ + "Active record target: record-btrace" \ + "Recorded 1 instructions in 1 functions for .*" \ + ] "\r\n"] + gdb_test "record instruction-history /f 1" \ + "1\t 0x\[0-9a-f\]+ <\\+\[0-9\]+>:\tmov *\\\$0x0,%eax\r" + gdb_test "record function-call-history /c 1" "1\tmain" +} + +# make sure we don't extend the trace when we ask twice. +with_test_prefix "once" { + check_trace +} + +with_test_prefix "twice" { + check_trace +} |