Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(89)

Side by Side Diff: gdb/testsuite/gdb.base/watchpoint.c

Issue 11969036: Merge GDB 7.5.1 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@master
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « gdb/testsuite/gdb.base/watch_thread_num.exp ('k') | gdb/testsuite/gdb.base/watchpoint.exp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #include <stdio.h> 1 #include <stdio.h>
2 #include <unistd.h> 2 #include <unistd.h>
3 /* 3 /*
4 * Since using watchpoints can be very slow, we have to take some pains to 4 * Since using watchpoints can be very slow, we have to take some pains to
5 * ensure that we don't run too long with them enabled or we run the risk 5 * ensure that we don't run too long with them enabled or we run the risk
6 * of having the test timeout. To help avoid this, we insert some marker 6 * of having the test timeout. To help avoid this, we insert some marker
7 * functions in the execution stream so we can set breakpoints at known 7 * functions in the execution stream so we can set breakpoints at known
8 * locations, without worrying about invalidating line numbers by changing 8 * locations, without worrying about invalidating line numbers by changing
9 * this file. We use null bodied functions are markers since gdb does 9 * this file. We use null bodied functions are markers since gdb does
10 * not support breakpoints at labeled text points at this time. 10 * not support breakpoints at labeled text points at this time.
(...skipping 24 matching lines...) Expand all
35 { 35 {
36 int val; 36 int val;
37 }; 37 };
38 struct foo struct1, struct2, *ptr1, *ptr2; 38 struct foo struct1, struct2, *ptr1, *ptr2;
39 39
40 int doread = 0; 40 int doread = 0;
41 41
42 char *global_ptr; 42 char *global_ptr;
43 char **global_ptr_ptr; 43 char **global_ptr_ptr;
44 44
45 struct foo2
46 {
47 int val[2];
48 };
49 struct foo2 foo2;
50
51 struct foo4
52 {
53 int val[4];
54 };
55 struct foo4 foo4;
56
45 void marker1 () 57 void marker1 ()
46 { 58 {
47 } 59 }
48 60
49 void marker2 () 61 void marker2 ()
50 { 62 {
51 } 63 }
52 64
53 void marker4 () 65 void marker4 ()
54 { 66 {
55 } 67 }
56 68
57 void marker5 () 69 void marker5 ()
58 { 70 {
59 } 71 }
60 72
61 void marker6 () 73 void marker6 ()
62 { 74 {
63 } 75 }
64 76
65 #ifdef PROTOTYPES 77 #ifdef PROTOTYPES
66 void recurser (int x) 78 void recurser (int x)
67 #else 79 #else
68 void recurser (x) int x; 80 void recurser (x) int x;
69 #endif 81 #endif
70 { 82 {
71 int local_x; 83 int local_x = 0;
72 84
73 if (x > 0) 85 if (x > 0)
74 recurser (x-1); 86 recurser (x-1);
75 local_x = x; 87 local_x = x;
76 } 88 }
77 89
78 void 90 void
79 func2 () 91 func2 ()
80 { 92 {
81 int local_a; 93 int local_a = 0;
82 static int static_b; 94 static int static_b;
83 95
96 /* func2 breakpoint here */
84 ival5++; 97 ival5++;
85 local_a = ival5; 98 local_a = ival5;
86 static_b = local_a; 99 static_b = local_a;
87 } 100 }
88 101
89 void 102 void
90 func3 () 103 func3 ()
91 { 104 {
92 int x; 105 int x;
93 int y; 106 int y;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 func5 () 143 func5 ()
131 { 144 {
132 int val = 0, val2 = 23; 145 int val = 0, val2 = 23;
133 int *x = &val; 146 int *x = &val;
134 147
135 /* func5 breakpoint here */ 148 /* func5 breakpoint here */
136 x = &val2; 149 x = &val2;
137 val = 27; 150 val = 27;
138 } 151 }
139 152
153 void
154 func6 (void)
155 {
156 /* func6 breakpoint here */
157 foo2.val[1] = 0;
158 foo2.val[1] = 11;
159 }
160
161 void
162 func7 (void)
163 {
164 /* func7 breakpoint here */
165 foo4.val[3] = 0;
166 foo4.val[3] = 33;
167 }
168
140 int main () 169 int main ()
141 { 170 {
142 #ifdef usestubs
143 set_debug_traps();
144 breakpoint();
145 #endif
146 struct1.val = 1; 171 struct1.val = 1;
147 struct2.val = 2; 172 struct2.val = 2;
148 ptr1 = &struct1; 173 ptr1 = &struct1;
149 ptr2 = &struct2; 174 ptr2 = &struct2;
150 marker1 (); 175 marker1 ();
151 func1 (); 176 func1 ();
152 for (count = 0; count < 4; count++) { 177 for (count = 0; count < 4; count++) {
153 ival1 = count; 178 ival1 = count;
154 ival3 = count; ival4 = count; 179 ival3 = count; ival4 = count;
155 } 180 }
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 /* This invocation is used for watches of a static 226 /* This invocation is used for watches of a static
202 (non-stack-based) local variable. */ 227 (non-stack-based) local variable. */
203 func2 (); 228 func2 ();
204 229
205 /* This invocation is used for watches of a local variable 230 /* This invocation is used for watches of a local variable
206 when recursion happens. 231 when recursion happens.
207 */ 232 */
208 marker6 (); 233 marker6 ();
209 recurser (2); 234 recurser (2);
210 235
236 /* This invocation is used for watches of a local variable with explicitly
237 specified scope when recursion happens.
238 */
239 marker6 ();
240 recurser (2);
241
211 marker6 (); 242 marker6 ();
212 243
213 func3 (); 244 func3 ();
214 245
215 func4 (); 246 func4 ();
216 247
217 func5 (); 248 func5 ();
218 249
250 func6 ();
251
252 func7 ();
253
219 return 0; 254 return 0;
220 } 255 }
OLDNEW
« no previous file with comments | « gdb/testsuite/gdb.base/watch_thread_num.exp ('k') | gdb/testsuite/gdb.base/watchpoint.exp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698