aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.trace/trace-condition.c
diff options
context:
space:
mode:
authorPierre Langlois <pierre.langlois@arm.com>2015-09-17 11:39:10 +0100
committerYao Qi <yao.qi@linaro.org>2015-09-17 11:39:10 +0100
commit43691ca179b1e573ca01e7bff87404519d4a3d75 (patch)
tree01797e016b0c893ae78b559473990610114e0213 /gdb/testsuite/gdb.trace/trace-condition.c
parentc785244dd4a68bbc5eef3b16358ea95db73ee686 (diff)
downloadgdb-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.c66
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;
+}