xref: /netbsd-src/external/gpl3/gdb/dist/gdb/testsuite/gdb.cp/breakpoint.cc (revision cbbb22dc589101fec4fb9312cfba742a0484ed0c)
1 /* Code to go along with tests in breakpoint.exp.
2 
3    Copyright 2004-2024 Free Software Foundation, Inc.
4 
5    This file is part of GDB.
6 
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 3 of the License, or
10    (at your option) any later version.
11 
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19 
20 int g = 0;
21 
22 class C1 {
23 public:
24   C1(int i) : i_(i) {}
25 
26   int foo ()
27   {
28     return 1; // conditional breakpoint in method
29   }
30 
31   void bar ()
32   {
33     for (int i = 0; i < 1; ++i)
34       {
35 	int t = i * 2;
36 	g += t; // conditional breakpoint in method 2
37       }
38   }
39 
40   class Nested {
41   public:
42     int
43     foo ()
44     {
45       return 1;
46     }
47   };
48 
49 private:
50   int i_;
51 };
52 
53 int main ()
54 {
55   C1::Nested c1;
56 
57   c1.foo ();
58 
59   C1 c2 (2), c3 (3);
60   c2.foo ();
61   c2.bar ();
62   c3.foo ();
63   c3.bar ();
64 
65   return 0;
66 }
67