abcef95aa5
The vdso.exp test checks that we can access the VDSO memory when replaying. Depending on the line information generated by the compiler, runto_main may run to the line marked with bp.1 or stop before that line. The test incorrectly assumes that it will always run to the marked line and fails if it doesn't. The test does not really care about what is traced. It does care that GDB is replaying when capturing the second disassemble output. Reflect that in the test by ignoring the output of the stepping and record goto begin commands and by checking that GDB is actually replaying. testsuite/ * gdb.btrace/vdso.c (main): Remove breakpoint markers. * gdb.btrace/vdso.exp: Change stepping command to "next" and ignore its output. Ignore the output of "record goto begin" and instead check that GDB is replaying.
56 lines
1.7 KiB
Text
56 lines
1.7 KiB
Text
# This testcase is part of GDB, the GNU debugger.
|
|
#
|
|
# Copyright 2014-2015 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/>.
|
|
#
|
|
#
|
|
# Test that we can access the vdso memory during replay for stepping.
|
|
|
|
# check for btrace support
|
|
if { [skip_btrace_tests] } { return -1 }
|
|
|
|
# start inferior
|
|
standard_testfile
|
|
if [prepare_for_testing $testfile.exp $testfile $srcfile] {
|
|
return -1
|
|
}
|
|
if ![runto_main] {
|
|
return -1
|
|
}
|
|
|
|
# capture the disassembly of gettimeofday while live debugging
|
|
set live_gettimeofday [capture_command_output "disassemble gettimeofday" ""]
|
|
|
|
# trace the test code
|
|
gdb_test_no_output "record btrace"
|
|
gdb_test "stepi" ".*"
|
|
|
|
with_test_prefix "replay" {
|
|
# start replaying
|
|
gdb_test "record goto begin" ".*"
|
|
gdb_test "info record" "Replay in progress\.\[^\\\r\\\n\]*"
|
|
|
|
# capture the disassembly of gettimeofday while replaying
|
|
set replay_gettimeofday [capture_command_output "disassemble gettimeofday" ""]
|
|
|
|
# the two disassemblies must be identical
|
|
if ![string compare $live_gettimeofday $replay_gettimeofday] {
|
|
pass "disassemble gettimeofday"
|
|
} else {
|
|
fail "disassemble gettimeofday"
|
|
}
|
|
}
|