diff options
author | Yao Qi <yao@codesourcery.com> | 2013-10-25 16:12:20 +0800 |
---|---|---|
committer | Yao Qi <yao@codesourcery.com> | 2013-11-25 09:12:38 +0800 |
commit | 23e9d3b9cecfffc529b5d8bb2ddec7f3e312cd6d (patch) | |
tree | 5ea150bef938e9e06a0058b3f8b359052590b1ce /gdb/testsuite/gdb.perf/backtrace.exp | |
parent | 5a75f60bc2dfb9b9bf607438448ab67325526848 (diff) | |
download | gdb-23e9d3b9cecfffc529b5d8bb2ddec7f3e312cd6d.zip gdb-23e9d3b9cecfffc529b5d8bb2ddec7f3e312cd6d.tar.gz gdb-23e9d3b9cecfffc529b5d8bb2ddec7f3e312cd6d.tar.bz2 |
GDB perf test on backtrace
gdb/testsuite/
2013-11-25 Yao Qi <yao@codesourcery.com>
* gdb.perf/backtrace.c: New.
* gdb.perf/backtrace.exp: New.
* gdb.perf/backtrace.py: New.
Diffstat (limited to 'gdb/testsuite/gdb.perf/backtrace.exp')
-rw-r--r-- | gdb/testsuite/gdb.perf/backtrace.exp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.perf/backtrace.exp b/gdb/testsuite/gdb.perf/backtrace.exp new file mode 100644 index 0000000..53b06dd --- /dev/null +++ b/gdb/testsuite/gdb.perf/backtrace.exp @@ -0,0 +1,66 @@ +# Copyright (C) 2013 Free Software Foundation, Inc. + +# 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/>. + +# This test case is to test the performance of GDB doing stack +# backtrace. +# There is one parameter in this test: +# - BACKTRACE_DEPTH is the number of innermost frames that command +# 'bt' prints. + +load_lib perftest.exp + +if [skip_perf_tests] { + return 0 +} + +standard_testfile .c +set executable $testfile +set expfile $testfile.exp + +# make check-perf RUNTESTFLAGS='backtrace.exp BACKTRACE_DEPTH=1024' +if ![info exists BACKTRACE_DEPTH] { + set BACKTRACE_DEPTH 64 +} + +PerfTest::assemble { + global BACKTRACE_DEPTH + global srcdir subdir srcfile + + set compile_flags {debug} + lappend compile_flags "additional_flags=-DBACKTRACE_DEPTH=${BACKTRACE_DEPTH}" + + if { [gdb_compile "$srcdir/$subdir/$srcfile" ${binfile} executable $compile_flags] != ""} { + return -1 + } + + return 0 +} { + global binfile + + clean_restart $binfile + + if ![runto_main] { + fail "Can't run to main" + return -1 + } + + gdb_breakpoint "fun2" + gdb_continue_to_breakpoint "fun2" +} { + global BACKTRACE_DEPTH + + gdb_test "python BackTrace\($BACKTRACE_DEPTH\).run()" + +} |