diff options
author | Pierre Langlois <pierre.langlois@arm.com> | 2015-09-17 11:39:10 +0100 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2015-09-17 11:39:10 +0100 |
commit | 43691ca179b1e573ca01e7bff87404519d4a3d75 (patch) | |
tree | 01797e016b0c893ae78b559473990610114e0213 /gdb/testsuite/gdb.trace/trace-condition.c | |
parent | c785244dd4a68bbc5eef3b16358ea95db73ee686 (diff) | |
download | gdb-43691ca179b1e573ca01e7bff87404519d4a3d75.zip gdb-43691ca179b1e573ca01e7bff87404519d4a3d75.tar.gz gdb-43691ca179b1e573ca01e7bff87404519d4a3d75.tar.bz2 |
Add test case for tracepoints with conditions
This patch adds a test case for tracepoints with a condition expression.
Each case will test a condition against the number of frames that should
have been traced. Some of these tests fail on x86_64 and others on
i386, which have been marked as known failures for now, see PR/18955.
gdb/testsuite/ChangeLog:
2015-09-17 Pierre Langlois <pierre.langlois@arm.com>
Yao Qi <yao.qi@linaro.org>
* gdb.trace/trace-condition.c: New file.
* gdb.trace/trace-condition.exp: New file.
Diffstat (limited to 'gdb/testsuite/gdb.trace/trace-condition.c')
-rw-r--r-- | gdb/testsuite/gdb.trace/trace-condition.c | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.trace/trace-condition.c b/gdb/testsuite/gdb.trace/trace-condition.c new file mode 100644 index 0000000..2e965c9 --- /dev/null +++ b/gdb/testsuite/gdb.trace/trace-condition.c @@ -0,0 +1,66 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2011-2015 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/>. */ + +#ifdef SYMBOL_PREFIX +#define SYMBOL(str) SYMBOL_PREFIX #str +#else +#define SYMBOL(str) #str +#endif + +int globvar; + +static void +begin (void) +{ +} + +/* Called from asm. */ +static void __attribute__((used)) +func (void) +{ +} + +static void +marker (int anarg) +{ + /* `set_point' is the label at which to set a fast tracepoint. The + insn at the label must be large enough to fit a fast tracepoint + jump. */ + asm (" .global " SYMBOL (set_point) "\n" + SYMBOL (set_point) ":\n" +#if (defined __x86_64__ || defined __i386__) + " call " SYMBOL (func) "\n" +#endif + ); +} + +static void +end (void) +{ +} + +int +main () +{ + begin (); + + for (globvar = 1; globvar < 11; ++globvar) + marker (globvar * 100); + + end (); + return 0; +} |