xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/testsuite/gdb.trace/ftrace.c (revision 8b657b0747480f8989760d71343d6dd33f8d4cf9)
1 /* This testcase is part of GDB, the GNU debugger.
2 
3    Copyright 2011-2023 Free Software Foundation, Inc.
4 
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 3 of the License, or
8    (at your option) any later version.
9 
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14 
15    You should have received a copy of the GNU General Public License
16    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
17 
18 #include "trace-common.h"
19 
20 int globvar;
21 
22 static void
23 begin (void)
24 {}
25 
26 static void
27 marker (int anarg)
28 {
29   FAST_TRACEPOINT_LABEL(set_point);
30 
31   ++anarg;
32 
33   /* Set up a known 4-byte instruction so we can try to set a shorter
34      fast tracepoint at it.  */
35   asm ("    .global " SYMBOL(four_byter) "\n"
36        SYMBOL(four_byter) ":\n"
37 #if (defined __i386__)
38        "    cmpl $0x1,0x8(%ebp) \n"
39 #endif
40        );
41 }
42 
43 static void
44 end (void)
45 {}
46 
47 int
48 main ()
49 {
50   begin ();
51 
52   for (globvar = 1; globvar < 11; ++globvar)
53     {
54       marker (globvar * 100);
55     }
56 
57   end ();
58   return 0;
59 }
60