blob: d5735522f68a57cd2461f5b0f3ee0f3d3f1efda0 [file] [log] [blame]
Takashi Matsuo06694102015-09-11 13:55:40 -07001<html><body>
2<style>
3
4body, h1, h2, h3, div, span, p, pre, a {
5 margin: 0;
6 padding: 0;
7 border: 0;
8 font-weight: inherit;
9 font-style: inherit;
10 font-size: 100%;
11 font-family: inherit;
12 vertical-align: baseline;
13}
14
15body {
16 font-size: 13px;
17 padding: 1em;
18}
19
20h1 {
21 font-size: 26px;
22 margin-bottom: 1em;
23}
24
25h2 {
26 font-size: 24px;
27 margin-bottom: 1em;
28}
29
30h3 {
31 font-size: 20px;
32 margin-bottom: 1em;
33 margin-top: 1em;
34}
35
36pre, code {
37 line-height: 1.5;
38 font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
39}
40
41pre {
42 margin-top: 0.5em;
43}
44
45h1, h2, h3, p {
46 font-family: Arial, sans serif;
47}
48
49h1, h2, h3 {
50 border-bottom: solid #CCC 1px;
51}
52
53.toc_element {
54 margin-top: 0.5em;
55}
56
57.firstline {
58 margin-left: 2 em;
59}
60
61.method {
62 margin-top: 1em;
63 border: solid 1px #CCC;
64 padding: 1em;
65 background: #EEE;
66}
67
68.details {
69 font-weight: bold;
70 font-size: 14px;
71}
72
73</style>
74
Dan O'Mearadd494642020-05-01 07:42:23 -070075<h1><a href="clouddebugger_v2.html">Cloud Debugger API</a> . <a href="clouddebugger_v2.debugger.html">debugger</a> . <a href="clouddebugger_v2.debugger.debuggees.html">debuggees</a> . <a href="clouddebugger_v2.debugger.debuggees.breakpoints.html">breakpoints</a></h1>
Takashi Matsuo06694102015-09-11 13:55:40 -070076<h2>Instance Methods</h2>
77<p class="toc_element">
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -070078 <code><a href="#delete">delete(debuggeeId, breakpointId, clientVersion=None, x__xgafv=None)</a></code></p>
Takashi Matsuo06694102015-09-11 13:55:40 -070079<p class="firstline">Deletes the breakpoint from the debuggee.</p>
80<p class="toc_element">
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -070081 <code><a href="#get">get(debuggeeId, breakpointId, clientVersion=None, x__xgafv=None)</a></code></p>
Takashi Matsuo06694102015-09-11 13:55:40 -070082<p class="firstline">Gets breakpoint information.</p>
83<p class="toc_element">
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -070084 <code><a href="#list">list(debuggeeId, waitToken=None, clientVersion=None, action_value=None, includeAllUsers=None, includeInactive=None, stripResults=None, x__xgafv=None)</a></code></p>
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -080085<p class="firstline">Lists all breakpoints for the debuggee.</p>
Takashi Matsuo06694102015-09-11 13:55:40 -070086<p class="toc_element">
Bu Sun Kim65020912020-05-20 12:08:20 -070087 <code><a href="#set">set(debuggeeId, body=None, canaryOption=None, clientVersion=None, x__xgafv=None)</a></code></p>
Takashi Matsuo06694102015-09-11 13:55:40 -070088<p class="firstline">Sets the breakpoint to the debuggee.</p>
89<h3>Method Details</h3>
90<div class="method">
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -070091 <code class="details" id="delete">delete(debuggeeId, breakpointId, clientVersion=None, x__xgafv=None)</code>
Takashi Matsuo06694102015-09-11 13:55:40 -070092 <pre>Deletes the breakpoint from the debuggee.
93
94Args:
Dan O'Mearadd494642020-05-01 07:42:23 -070095 debuggeeId: string, Required. ID of the debuggee whose breakpoint to delete. (required)
96 breakpointId: string, Required. ID of the breakpoint to delete. (required)
97 clientVersion: string, Required. The client version making the call.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070098Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
Takashi Matsuo06694102015-09-11 13:55:40 -070099 x__xgafv: string, V1 error format.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400100 Allowed values
101 1 - v1 error format
102 2 - v2 error format
Takashi Matsuo06694102015-09-11 13:55:40 -0700103
104Returns:
105 An object of the form:
106
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400107 { # A generic empty message that you can re-use to avoid defining duplicated
108 # empty messages in your APIs. A typical example is to use it as the request
109 # or the response type of an API method. For instance:
110 #
111 # service Foo {
112 # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
113 # }
114 #
115 # The JSON representation for `Empty` is empty JSON object `{}`.
Takashi Matsuo06694102015-09-11 13:55:40 -0700116 }</pre>
117</div>
118
119<div class="method">
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -0700120 <code class="details" id="get">get(debuggeeId, breakpointId, clientVersion=None, x__xgafv=None)</code>
Takashi Matsuo06694102015-09-11 13:55:40 -0700121 <pre>Gets breakpoint information.
122
123Args:
Dan O'Mearadd494642020-05-01 07:42:23 -0700124 debuggeeId: string, Required. ID of the debuggee whose breakpoint to get. (required)
125 breakpointId: string, Required. ID of the breakpoint to get. (required)
126 clientVersion: string, Required. The client version making the call.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700127Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
Takashi Matsuo06694102015-09-11 13:55:40 -0700128 x__xgafv: string, V1 error format.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400129 Allowed values
130 1 - v1 error format
131 2 - v2 error format
Takashi Matsuo06694102015-09-11 13:55:40 -0700132
133Returns:
134 An object of the form:
135
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800136 { # Response for getting breakpoint information.
Bu Sun Kim65020912020-05-20 12:08:20 -0700137 &quot;breakpoint&quot;: { # ------------------------------------------------------------------------------ # Complete breakpoint state.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400138 # The fields `id` and `location` are guaranteed to be set.
Dan O'Mearadd494642020-05-01 07:42:23 -0700139 # ## Breakpoint (the resource)
140 #
141 # Represents the breakpoint specification, status and results.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700142 &quot;expressions&quot;: [ # List of read-only expressions to evaluate at the breakpoint location.
143 # The expressions are composed using expressions in the programming language
144 # at the source location. If the breakpoint action is `LOG`, the evaluated
145 # expressions are included in log statements.
146 &quot;A String&quot;,
147 ],
148 &quot;evaluatedExpressions&quot;: [ # Values of evaluated expressions at breakpoint time.
149 # The evaluated expressions appear in exactly the same order they
150 # are listed in the `expressions` field.
151 # The `name` field holds the original expression text, the `value` or
152 # `members` field holds the result of the evaluated expression.
153 # If the expression cannot be evaluated, the `status` inside the `Variable`
154 # will indicate an error and contain the error text.
155 { # Represents a variable or an argument possibly of a compound object type.
156 # Note how the following variables are represented:
157 #
158 # 1) A simple variable:
159 #
160 # int x = 5
161 #
162 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
163 #
164 # 2) A compound object:
165 #
166 # struct T {
167 # int m1;
168 # int m2;
169 # };
170 # T x = { 3, 7 };
171 #
172 # { // Captured variable
173 # name: &quot;x&quot;,
174 # type: &quot;T&quot;,
175 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
176 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
177 # }
178 #
179 # 3) A pointer where the pointee was captured:
180 #
181 # T x = { 3, 7 };
182 # T* p = &amp;x;
183 #
184 # { // Captured variable
185 # name: &quot;p&quot;,
186 # type: &quot;T*&quot;,
187 # value: &quot;0x00500500&quot;,
188 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
189 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
190 # }
191 #
192 # 4) A pointer where the pointee was not captured:
193 #
194 # T* p = new T;
195 #
196 # { // Captured variable
197 # name: &quot;p&quot;,
198 # type: &quot;T*&quot;,
199 # value: &quot;0x00400400&quot;
200 # status { is_error: true, description { format: &quot;unavailable&quot; } }
201 # }
202 #
203 # The status should describe the reason for the missing value,
204 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
205 #
206 # Note that a null pointer should not have members.
207 #
208 # 5) An unnamed value:
209 #
210 # int* p = new int(7);
211 #
212 # { // Captured variable
213 # name: &quot;p&quot;,
214 # value: &quot;0x00500500&quot;,
215 # type: &quot;int*&quot;,
216 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
217 #
218 # 6) An unnamed pointer where the pointee was not captured:
219 #
220 # int* p = new int(7);
221 # int** pp = &amp;p;
222 #
223 # { // Captured variable
224 # name: &quot;pp&quot;,
225 # value: &quot;0x00500500&quot;,
226 # type: &quot;int**&quot;,
227 # members {
228 # value: &quot;0x00400400&quot;,
229 # type: &quot;int*&quot;
230 # status {
231 # is_error: true,
232 # description: { format: &quot;unavailable&quot; } }
233 # }
234 # }
235 # }
236 #
237 # To optimize computation, memory and network traffic, variables that
238 # repeat in the output multiple times can be stored once in a shared
239 # variable table and be referenced using the `var_table_index` field. The
240 # variables stored in the shared table are nameless and are essentially
241 # a partition of the complete variable. To reconstruct the complete
242 # variable, merge the referencing variable with the referenced variable.
243 #
244 # When using the shared variable table, the following variables:
245 #
246 # T x = { 3, 7 };
247 # T* p = &amp;x;
248 # T&amp; r = x;
249 #
250 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
251 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
252 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
253 #
254 # { // Shared variable table entry #3:
255 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
256 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
257 # }
258 #
259 # Note that the pointer address is stored with the referencing variable
260 # and not with the referenced variable. This allows the referenced variable
261 # to be shared between pointers and references.
262 #
263 # The type field is optional. The debugger agent may or may not support it.
264 &quot;members&quot;: [ # Members contained or pointed to by the variable.
265 # Object with schema name: Variable
266 ],
267 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
268 # unset. A status of a single variable only applies to that variable or
269 # expression. The rest of breakpoint data still remains valid. Variables
270 # might be reported in error state even when breakpoint is not in final
271 # state.
272 #
273 # The message may refer to variable name with `refers_to` set to
274 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
275 # In either case variable value and members will be unset.
276 #
277 # Example of error message applied to name: `Invalid expression syntax`.
278 #
279 # Example of information message applied to value: `Not captured`.
280 #
281 # Examples of error message applied to value:
282 #
283 # * `Malformed string`,
284 # * `Field f not found in class C`
285 # * `Null pointer dereference`
286 # The message can indicate an error or informational status, and refer to
287 # specific parts of the containing object.
288 # For example, the `Breakpoint.status` field can indicate an error referring
289 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
290 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
291 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
292 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
293 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
294 # character.
295 #
296 # Examples:
297 #
298 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
299 # is loaded. Again, $0 is very important.`
300 # * `Please pay $$10 to use $0 instead of $1.`
301 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
302 &quot;A String&quot;,
303 ],
304 },
305 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
306 },
307 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
308 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
309 # `var_table_index`, `type` goes next to `value`. The interpretation of
310 # a type is agent specific. It is recommended to include the dynamic type
311 # rather than a static type of an object.
312 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
313 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
314 # one variable can reference the same variable in the table. The
315 # `var_table_index` field is an index into `variable_table` in Breakpoint.
316 },
317 ],
318 &quot;isFinalState&quot;: True or False, # When true, indicates that this is a final result and the
319 # breakpoint state will not change from here on.
320 &quot;stackFrames&quot;: [ # The stack at breakpoint time, where stack_frames[0] represents the most
321 # recently entered function.
322 { # Represents a stack frame context.
323 &quot;locals&quot;: [ # Set of local variables at the stack frame location.
324 # Note that this might not be populated for all stack frames.
325 { # Represents a variable or an argument possibly of a compound object type.
326 # Note how the following variables are represented:
327 #
328 # 1) A simple variable:
329 #
330 # int x = 5
331 #
332 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
333 #
334 # 2) A compound object:
335 #
336 # struct T {
337 # int m1;
338 # int m2;
339 # };
340 # T x = { 3, 7 };
341 #
342 # { // Captured variable
343 # name: &quot;x&quot;,
344 # type: &quot;T&quot;,
345 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
346 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
347 # }
348 #
349 # 3) A pointer where the pointee was captured:
350 #
351 # T x = { 3, 7 };
352 # T* p = &amp;x;
353 #
354 # { // Captured variable
355 # name: &quot;p&quot;,
356 # type: &quot;T*&quot;,
357 # value: &quot;0x00500500&quot;,
358 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
359 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
360 # }
361 #
362 # 4) A pointer where the pointee was not captured:
363 #
364 # T* p = new T;
365 #
366 # { // Captured variable
367 # name: &quot;p&quot;,
368 # type: &quot;T*&quot;,
369 # value: &quot;0x00400400&quot;
370 # status { is_error: true, description { format: &quot;unavailable&quot; } }
371 # }
372 #
373 # The status should describe the reason for the missing value,
374 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
375 #
376 # Note that a null pointer should not have members.
377 #
378 # 5) An unnamed value:
379 #
380 # int* p = new int(7);
381 #
382 # { // Captured variable
383 # name: &quot;p&quot;,
384 # value: &quot;0x00500500&quot;,
385 # type: &quot;int*&quot;,
386 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
387 #
388 # 6) An unnamed pointer where the pointee was not captured:
389 #
390 # int* p = new int(7);
391 # int** pp = &amp;p;
392 #
393 # { // Captured variable
394 # name: &quot;pp&quot;,
395 # value: &quot;0x00500500&quot;,
396 # type: &quot;int**&quot;,
397 # members {
398 # value: &quot;0x00400400&quot;,
399 # type: &quot;int*&quot;
400 # status {
401 # is_error: true,
402 # description: { format: &quot;unavailable&quot; } }
403 # }
404 # }
405 # }
406 #
407 # To optimize computation, memory and network traffic, variables that
408 # repeat in the output multiple times can be stored once in a shared
409 # variable table and be referenced using the `var_table_index` field. The
410 # variables stored in the shared table are nameless and are essentially
411 # a partition of the complete variable. To reconstruct the complete
412 # variable, merge the referencing variable with the referenced variable.
413 #
414 # When using the shared variable table, the following variables:
415 #
416 # T x = { 3, 7 };
417 # T* p = &amp;x;
418 # T&amp; r = x;
419 #
420 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
421 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
422 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
423 #
424 # { // Shared variable table entry #3:
425 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
426 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
427 # }
428 #
429 # Note that the pointer address is stored with the referencing variable
430 # and not with the referenced variable. This allows the referenced variable
431 # to be shared between pointers and references.
432 #
433 # The type field is optional. The debugger agent may or may not support it.
434 &quot;members&quot;: [ # Members contained or pointed to by the variable.
435 # Object with schema name: Variable
436 ],
437 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
438 # unset. A status of a single variable only applies to that variable or
439 # expression. The rest of breakpoint data still remains valid. Variables
440 # might be reported in error state even when breakpoint is not in final
441 # state.
442 #
443 # The message may refer to variable name with `refers_to` set to
444 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
445 # In either case variable value and members will be unset.
446 #
447 # Example of error message applied to name: `Invalid expression syntax`.
448 #
449 # Example of information message applied to value: `Not captured`.
450 #
451 # Examples of error message applied to value:
452 #
453 # * `Malformed string`,
454 # * `Field f not found in class C`
455 # * `Null pointer dereference`
456 # The message can indicate an error or informational status, and refer to
457 # specific parts of the containing object.
458 # For example, the `Breakpoint.status` field can indicate an error referring
459 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
460 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
461 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
462 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
463 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
464 # character.
465 #
466 # Examples:
467 #
468 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
469 # is loaded. Again, $0 is very important.`
470 # * `Please pay $$10 to use $0 instead of $1.`
471 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
472 &quot;A String&quot;,
473 ],
474 },
475 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
476 },
477 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
478 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
479 # `var_table_index`, `type` goes next to `value`. The interpretation of
480 # a type is agent specific. It is recommended to include the dynamic type
481 # rather than a static type of an object.
482 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
483 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
484 # one variable can reference the same variable in the table. The
485 # `var_table_index` field is an index into `variable_table` in Breakpoint.
486 },
487 ],
488 &quot;location&quot;: { # Represents a location in the source code. # Source location of the call site.
489 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
490 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
491 # Agents that do not support setting breakpoints on specific columns ignore
492 # this field.
493 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
494 },
495 &quot;function&quot;: &quot;A String&quot;, # Demangled function name at the call site.
496 &quot;arguments&quot;: [ # Set of arguments passed to this function.
497 # Note that this might not be populated for all stack frames.
498 { # Represents a variable or an argument possibly of a compound object type.
499 # Note how the following variables are represented:
500 #
501 # 1) A simple variable:
502 #
503 # int x = 5
504 #
505 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
506 #
507 # 2) A compound object:
508 #
509 # struct T {
510 # int m1;
511 # int m2;
512 # };
513 # T x = { 3, 7 };
514 #
515 # { // Captured variable
516 # name: &quot;x&quot;,
517 # type: &quot;T&quot;,
518 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
519 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
520 # }
521 #
522 # 3) A pointer where the pointee was captured:
523 #
524 # T x = { 3, 7 };
525 # T* p = &amp;x;
526 #
527 # { // Captured variable
528 # name: &quot;p&quot;,
529 # type: &quot;T*&quot;,
530 # value: &quot;0x00500500&quot;,
531 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
532 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
533 # }
534 #
535 # 4) A pointer where the pointee was not captured:
536 #
537 # T* p = new T;
538 #
539 # { // Captured variable
540 # name: &quot;p&quot;,
541 # type: &quot;T*&quot;,
542 # value: &quot;0x00400400&quot;
543 # status { is_error: true, description { format: &quot;unavailable&quot; } }
544 # }
545 #
546 # The status should describe the reason for the missing value,
547 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
548 #
549 # Note that a null pointer should not have members.
550 #
551 # 5) An unnamed value:
552 #
553 # int* p = new int(7);
554 #
555 # { // Captured variable
556 # name: &quot;p&quot;,
557 # value: &quot;0x00500500&quot;,
558 # type: &quot;int*&quot;,
559 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
560 #
561 # 6) An unnamed pointer where the pointee was not captured:
562 #
563 # int* p = new int(7);
564 # int** pp = &amp;p;
565 #
566 # { // Captured variable
567 # name: &quot;pp&quot;,
568 # value: &quot;0x00500500&quot;,
569 # type: &quot;int**&quot;,
570 # members {
571 # value: &quot;0x00400400&quot;,
572 # type: &quot;int*&quot;
573 # status {
574 # is_error: true,
575 # description: { format: &quot;unavailable&quot; } }
576 # }
577 # }
578 # }
579 #
580 # To optimize computation, memory and network traffic, variables that
581 # repeat in the output multiple times can be stored once in a shared
582 # variable table and be referenced using the `var_table_index` field. The
583 # variables stored in the shared table are nameless and are essentially
584 # a partition of the complete variable. To reconstruct the complete
585 # variable, merge the referencing variable with the referenced variable.
586 #
587 # When using the shared variable table, the following variables:
588 #
589 # T x = { 3, 7 };
590 # T* p = &amp;x;
591 # T&amp; r = x;
592 #
593 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
594 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
595 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
596 #
597 # { // Shared variable table entry #3:
598 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
599 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
600 # }
601 #
602 # Note that the pointer address is stored with the referencing variable
603 # and not with the referenced variable. This allows the referenced variable
604 # to be shared between pointers and references.
605 #
606 # The type field is optional. The debugger agent may or may not support it.
607 &quot;members&quot;: [ # Members contained or pointed to by the variable.
608 # Object with schema name: Variable
609 ],
610 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
611 # unset. A status of a single variable only applies to that variable or
612 # expression. The rest of breakpoint data still remains valid. Variables
613 # might be reported in error state even when breakpoint is not in final
614 # state.
615 #
616 # The message may refer to variable name with `refers_to` set to
617 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
618 # In either case variable value and members will be unset.
619 #
620 # Example of error message applied to name: `Invalid expression syntax`.
621 #
622 # Example of information message applied to value: `Not captured`.
623 #
624 # Examples of error message applied to value:
625 #
626 # * `Malformed string`,
627 # * `Field f not found in class C`
628 # * `Null pointer dereference`
629 # The message can indicate an error or informational status, and refer to
630 # specific parts of the containing object.
631 # For example, the `Breakpoint.status` field can indicate an error referring
632 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
633 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
634 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
635 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
636 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
637 # character.
638 #
639 # Examples:
640 #
641 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
642 # is loaded. Again, $0 is very important.`
643 # * `Please pay $$10 to use $0 instead of $1.`
644 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
645 &quot;A String&quot;,
646 ],
647 },
648 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
649 },
650 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
651 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
652 # `var_table_index`, `type` goes next to `value`. The interpretation of
653 # a type is agent specific. It is recommended to include the dynamic type
654 # rather than a static type of an object.
655 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
656 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
657 # one variable can reference the same variable in the table. The
658 # `var_table_index` field is an index into `variable_table` in Breakpoint.
659 },
660 ],
661 },
662 ],
663 &quot;condition&quot;: &quot;A String&quot;, # Condition that triggers the breakpoint.
664 # The condition is a compound boolean expression composed using expressions
665 # in a programming language at the source location.
Bu Sun Kim65020912020-05-20 12:08:20 -0700666 &quot;canaryExpireTime&quot;: &quot;A String&quot;, # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
667 # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
668 &quot;status&quot;: { # Represents a contextual status message. # Breakpoint status.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400669 #
670 # The status includes an error flag and a human readable message.
671 # This field is usually unset. The message can be either
672 # informational or an error message. Regardless, clients should always
673 # display the text message back to the user.
674 #
675 # Error status indicates complete failure of the breakpoint.
676 #
677 # Example (non-final state): `Still loading symbols...`
678 #
679 # Examples (final state):
680 #
681 # * `Invalid line number` referring to location
682 # * `Field f not found in class C` referring to condition
683 # The message can indicate an error or informational status, and refer to
684 # specific parts of the containing object.
685 # For example, the `Breakpoint.status` field can indicate an error referring
686 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700687 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
688 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
Bu Sun Kim65020912020-05-20 12:08:20 -0700689 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400690 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
691 # character.
692 #
693 # Examples:
694 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700695 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400696 # is loaded. Again, $0 is very important.`
697 # * `Please pay $$10 to use $0 instead of $1.`
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700698 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
699 &quot;A String&quot;,
700 ],
Takashi Matsuo06694102015-09-11 13:55:40 -0700701 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700702 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -0700703 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700704 &quot;state&quot;: &quot;A String&quot;, # The current state of the breakpoint.
705 &quot;userEmail&quot;: &quot;A String&quot;, # E-mail address of the user that created this breakpoint
706 &quot;action&quot;: &quot;A String&quot;, # Action that the agent should perform when the code at the
707 # breakpoint location is hit.
708 &quot;logLevel&quot;: &quot;A String&quot;, # Indicates the severity of the log. Only relevant when action is `LOG`.
709 &quot;id&quot;: &quot;A String&quot;, # Breakpoint identifier, unique in the scope of the debuggee.
710 &quot;location&quot;: { # Represents a location in the source code. # Breakpoint source location.
711 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
712 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
713 # Agents that do not support setting breakpoints on specific columns ignore
714 # this field.
715 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
716 },
717 &quot;finalTime&quot;: &quot;A String&quot;, # Time this breakpoint was finalized as seen by the server in seconds
718 # resolution.
719 &quot;variableTable&quot;: [ # The `variable_table` exists to aid with computation, memory and network
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400720 # traffic optimization. It enables storing a variable once and reference
721 # it from multiple variables, including variables stored in the
722 # `variable_table` itself.
723 # For example, the same `this` object, which may appear at many levels of
724 # the stack, can have all of its data stored once in this table. The
725 # stack frame variables then would hold only a reference to it.
726 #
727 # The variable `var_table_index` field is an index into this repeated field.
728 # The stored objects are nameless and get their name from the referencing
729 # variable. The effective variable is a merge of the referencing variable
730 # and the referenced variable.
731 { # Represents a variable or an argument possibly of a compound object type.
732 # Note how the following variables are represented:
733 #
734 # 1) A simple variable:
735 #
736 # int x = 5
737 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700738 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400739 #
740 # 2) A compound object:
741 #
742 # struct T {
743 # int m1;
744 # int m2;
745 # };
746 # T x = { 3, 7 };
747 #
748 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700749 # name: &quot;x&quot;,
750 # type: &quot;T&quot;,
751 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
752 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400753 # }
754 #
755 # 3) A pointer where the pointee was captured:
756 #
757 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -0700758 # T* p = &amp;x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400759 #
760 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700761 # name: &quot;p&quot;,
762 # type: &quot;T*&quot;,
763 # value: &quot;0x00500500&quot;,
764 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
765 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400766 # }
767 #
768 # 4) A pointer where the pointee was not captured:
769 #
770 # T* p = new T;
771 #
772 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700773 # name: &quot;p&quot;,
774 # type: &quot;T*&quot;,
775 # value: &quot;0x00400400&quot;
776 # status { is_error: true, description { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400777 # }
778 #
779 # The status should describe the reason for the missing value,
Dan O'Mearadd494642020-05-01 07:42:23 -0700780 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400781 #
782 # Note that a null pointer should not have members.
783 #
784 # 5) An unnamed value:
785 #
786 # int* p = new int(7);
787 #
788 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700789 # name: &quot;p&quot;,
790 # value: &quot;0x00500500&quot;,
791 # type: &quot;int*&quot;,
792 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400793 #
794 # 6) An unnamed pointer where the pointee was not captured:
795 #
796 # int* p = new int(7);
Dan O'Mearadd494642020-05-01 07:42:23 -0700797 # int** pp = &amp;p;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400798 #
799 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700800 # name: &quot;pp&quot;,
801 # value: &quot;0x00500500&quot;,
802 # type: &quot;int**&quot;,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400803 # members {
Bu Sun Kim65020912020-05-20 12:08:20 -0700804 # value: &quot;0x00400400&quot;,
805 # type: &quot;int*&quot;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400806 # status {
807 # is_error: true,
Bu Sun Kim65020912020-05-20 12:08:20 -0700808 # description: { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400809 # }
810 # }
811 # }
812 #
813 # To optimize computation, memory and network traffic, variables that
814 # repeat in the output multiple times can be stored once in a shared
815 # variable table and be referenced using the `var_table_index` field. The
816 # variables stored in the shared table are nameless and are essentially
817 # a partition of the complete variable. To reconstruct the complete
818 # variable, merge the referencing variable with the referenced variable.
819 #
820 # When using the shared variable table, the following variables:
821 #
822 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -0700823 # T* p = &amp;x;
824 # T&amp; r = x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400825 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700826 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
827 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
828 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400829 #
830 # { // Shared variable table entry #3:
Bu Sun Kim65020912020-05-20 12:08:20 -0700831 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
832 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400833 # }
834 #
835 # Note that the pointer address is stored with the referencing variable
836 # and not with the referenced variable. This allows the referenced variable
837 # to be shared between pointers and references.
838 #
839 # The type field is optional. The debugger agent may or may not support it.
Bu Sun Kim65020912020-05-20 12:08:20 -0700840 &quot;members&quot;: [ # Members contained or pointed to by the variable.
841 # Object with schema name: Variable
842 ],
843 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400844 # unset. A status of a single variable only applies to that variable or
845 # expression. The rest of breakpoint data still remains valid. Variables
846 # might be reported in error state even when breakpoint is not in final
847 # state.
848 #
849 # The message may refer to variable name with `refers_to` set to
850 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
851 # In either case variable value and members will be unset.
852 #
853 # Example of error message applied to name: `Invalid expression syntax`.
854 #
855 # Example of information message applied to value: `Not captured`.
856 #
857 # Examples of error message applied to value:
858 #
859 # * `Malformed string`,
860 # * `Field f not found in class C`
861 # * `Null pointer dereference`
862 # The message can indicate an error or informational status, and refer to
863 # specific parts of the containing object.
864 # For example, the `Breakpoint.status` field can indicate an error referring
865 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700866 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
867 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
Bu Sun Kim65020912020-05-20 12:08:20 -0700868 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400869 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
870 # character.
871 #
872 # Examples:
873 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700874 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400875 # is loaded. Again, $0 is very important.`
876 # * `Please pay $$10 to use $0 instead of $1.`
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700877 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
878 &quot;A String&quot;,
879 ],
Takashi Matsuo06694102015-09-11 13:55:40 -0700880 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700881 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -0700882 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700883 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
884 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400885 # `var_table_index`, `type` goes next to `value`. The interpretation of
886 # a type is agent specific. It is recommended to include the dynamic type
887 # rather than a static type of an object.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700888 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
Bu Sun Kim65020912020-05-20 12:08:20 -0700889 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
890 # one variable can reference the same variable in the table. The
891 # `var_table_index` field is an index into `variable_table` in Breakpoint.
Takashi Matsuo06694102015-09-11 13:55:40 -0700892 },
893 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700894 &quot;createTime&quot;: &quot;A String&quot;, # Time this breakpoint was created by the server in seconds resolution.
895 &quot;logMessageFormat&quot;: &quot;A String&quot;, # Only relevant when action is `LOG`. Defines the message to log when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700896 # the breakpoint hits. The message may include parameter placeholders `$0`,
897 # `$1`, etc. These placeholders are replaced with the evaluated value
898 # of the appropriate expression. Expressions not referenced in
899 # `log_message_format` are not logged.
900 #
901 # Example: `Message received, id = $0, count = $1` with
902 # `expressions` = `[ message.id, message.count ]`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700903 &quot;labels&quot;: { # A set of custom breakpoint properties, populated by the agent, to be
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400904 # displayed to the user.
Bu Sun Kim65020912020-05-20 12:08:20 -0700905 &quot;a_key&quot;: &quot;A String&quot;,
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -0700906 },
Takashi Matsuo06694102015-09-11 13:55:40 -0700907 },
908 }</pre>
909</div>
910
911<div class="method">
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700912 <code class="details" id="list">list(debuggeeId, waitToken=None, clientVersion=None, action_value=None, includeAllUsers=None, includeInactive=None, stripResults=None, x__xgafv=None)</code>
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800913 <pre>Lists all breakpoints for the debuggee.
Takashi Matsuo06694102015-09-11 13:55:40 -0700914
915Args:
Dan O'Mearadd494642020-05-01 07:42:23 -0700916 debuggeeId: string, Required. ID of the debuggee whose breakpoints to list. (required)
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400917 waitToken: string, A wait token that, if specified, blocks the call until the breakpoints
918list has changed, or a server selected timeout has expired. The value
919should be set from the last response. The error code
920`google.rpc.Code.ABORTED` (RPC) is returned on wait timeout, which
921should be called again with the same `wait_token`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700922 clientVersion: string, Required. The client version making the call.
923Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
924 action_value: string, Only breakpoints with the specified action will pass the filter.
Bu Sun Kim65020912020-05-20 12:08:20 -0700925 includeAllUsers: boolean, When set to `true`, the response includes the list of breakpoints set by
926any user. Otherwise, it includes only breakpoints set by the caller.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700927 includeInactive: boolean, When set to `true`, the response includes active and inactive
928breakpoints. Otherwise, it includes only active breakpoints.
Bu Sun Kim65020912020-05-20 12:08:20 -0700929 stripResults: boolean, This field is deprecated. The following fields are always stripped out of
930the result: `stack_frames`, `evaluated_expressions` and `variable_table`.
931 x__xgafv: string, V1 error format.
932 Allowed values
933 1 - v1 error format
934 2 - v2 error format
Takashi Matsuo06694102015-09-11 13:55:40 -0700935
936Returns:
937 An object of the form:
938
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800939 { # Response for listing breakpoints.
Bu Sun Kim65020912020-05-20 12:08:20 -0700940 &quot;breakpoints&quot;: [ # List of breakpoints matching the request.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400941 # The fields `id` and `location` are guaranteed to be set on each breakpoint.
942 # The fields: `stack_frames`, `evaluated_expressions` and `variable_table`
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700943 # are cleared on each breakpoint regardless of its status.
Dan O'Mearadd494642020-05-01 07:42:23 -0700944 { # ------------------------------------------------------------------------------
945 # ## Breakpoint (the resource)
946 #
947 # Represents the breakpoint specification, status and results.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -0700948 &quot;expressions&quot;: [ # List of read-only expressions to evaluate at the breakpoint location.
949 # The expressions are composed using expressions in the programming language
950 # at the source location. If the breakpoint action is `LOG`, the evaluated
951 # expressions are included in log statements.
952 &quot;A String&quot;,
953 ],
954 &quot;evaluatedExpressions&quot;: [ # Values of evaluated expressions at breakpoint time.
955 # The evaluated expressions appear in exactly the same order they
956 # are listed in the `expressions` field.
957 # The `name` field holds the original expression text, the `value` or
958 # `members` field holds the result of the evaluated expression.
959 # If the expression cannot be evaluated, the `status` inside the `Variable`
960 # will indicate an error and contain the error text.
961 { # Represents a variable or an argument possibly of a compound object type.
962 # Note how the following variables are represented:
963 #
964 # 1) A simple variable:
965 #
966 # int x = 5
967 #
968 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
969 #
970 # 2) A compound object:
971 #
972 # struct T {
973 # int m1;
974 # int m2;
975 # };
976 # T x = { 3, 7 };
977 #
978 # { // Captured variable
979 # name: &quot;x&quot;,
980 # type: &quot;T&quot;,
981 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
982 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
983 # }
984 #
985 # 3) A pointer where the pointee was captured:
986 #
987 # T x = { 3, 7 };
988 # T* p = &amp;x;
989 #
990 # { // Captured variable
991 # name: &quot;p&quot;,
992 # type: &quot;T*&quot;,
993 # value: &quot;0x00500500&quot;,
994 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
995 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
996 # }
997 #
998 # 4) A pointer where the pointee was not captured:
999 #
1000 # T* p = new T;
1001 #
1002 # { // Captured variable
1003 # name: &quot;p&quot;,
1004 # type: &quot;T*&quot;,
1005 # value: &quot;0x00400400&quot;
1006 # status { is_error: true, description { format: &quot;unavailable&quot; } }
1007 # }
1008 #
1009 # The status should describe the reason for the missing value,
1010 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
1011 #
1012 # Note that a null pointer should not have members.
1013 #
1014 # 5) An unnamed value:
1015 #
1016 # int* p = new int(7);
1017 #
1018 # { // Captured variable
1019 # name: &quot;p&quot;,
1020 # value: &quot;0x00500500&quot;,
1021 # type: &quot;int*&quot;,
1022 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
1023 #
1024 # 6) An unnamed pointer where the pointee was not captured:
1025 #
1026 # int* p = new int(7);
1027 # int** pp = &amp;p;
1028 #
1029 # { // Captured variable
1030 # name: &quot;pp&quot;,
1031 # value: &quot;0x00500500&quot;,
1032 # type: &quot;int**&quot;,
1033 # members {
1034 # value: &quot;0x00400400&quot;,
1035 # type: &quot;int*&quot;
1036 # status {
1037 # is_error: true,
1038 # description: { format: &quot;unavailable&quot; } }
1039 # }
1040 # }
1041 # }
1042 #
1043 # To optimize computation, memory and network traffic, variables that
1044 # repeat in the output multiple times can be stored once in a shared
1045 # variable table and be referenced using the `var_table_index` field. The
1046 # variables stored in the shared table are nameless and are essentially
1047 # a partition of the complete variable. To reconstruct the complete
1048 # variable, merge the referencing variable with the referenced variable.
1049 #
1050 # When using the shared variable table, the following variables:
1051 #
1052 # T x = { 3, 7 };
1053 # T* p = &amp;x;
1054 # T&amp; r = x;
1055 #
1056 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
1057 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
1058 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
1059 #
1060 # { // Shared variable table entry #3:
1061 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1062 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1063 # }
1064 #
1065 # Note that the pointer address is stored with the referencing variable
1066 # and not with the referenced variable. This allows the referenced variable
1067 # to be shared between pointers and references.
1068 #
1069 # The type field is optional. The debugger agent may or may not support it.
1070 &quot;members&quot;: [ # Members contained or pointed to by the variable.
1071 # Object with schema name: Variable
1072 ],
1073 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
1074 # unset. A status of a single variable only applies to that variable or
1075 # expression. The rest of breakpoint data still remains valid. Variables
1076 # might be reported in error state even when breakpoint is not in final
1077 # state.
1078 #
1079 # The message may refer to variable name with `refers_to` set to
1080 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1081 # In either case variable value and members will be unset.
1082 #
1083 # Example of error message applied to name: `Invalid expression syntax`.
1084 #
1085 # Example of information message applied to value: `Not captured`.
1086 #
1087 # Examples of error message applied to value:
1088 #
1089 # * `Malformed string`,
1090 # * `Field f not found in class C`
1091 # * `Null pointer dereference`
1092 # The message can indicate an error or informational status, and refer to
1093 # specific parts of the containing object.
1094 # For example, the `Breakpoint.status` field can indicate an error referring
1095 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
1096 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
1097 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
1098 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
1099 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1100 # character.
1101 #
1102 # Examples:
1103 #
1104 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
1105 # is loaded. Again, $0 is very important.`
1106 # * `Please pay $$10 to use $0 instead of $1.`
1107 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
1108 &quot;A String&quot;,
1109 ],
1110 },
1111 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
1112 },
1113 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
1114 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
1115 # `var_table_index`, `type` goes next to `value`. The interpretation of
1116 # a type is agent specific. It is recommended to include the dynamic type
1117 # rather than a static type of an object.
1118 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
1119 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
1120 # one variable can reference the same variable in the table. The
1121 # `var_table_index` field is an index into `variable_table` in Breakpoint.
1122 },
1123 ],
1124 &quot;isFinalState&quot;: True or False, # When true, indicates that this is a final result and the
1125 # breakpoint state will not change from here on.
1126 &quot;stackFrames&quot;: [ # The stack at breakpoint time, where stack_frames[0] represents the most
1127 # recently entered function.
1128 { # Represents a stack frame context.
1129 &quot;locals&quot;: [ # Set of local variables at the stack frame location.
1130 # Note that this might not be populated for all stack frames.
1131 { # Represents a variable or an argument possibly of a compound object type.
1132 # Note how the following variables are represented:
1133 #
1134 # 1) A simple variable:
1135 #
1136 # int x = 5
1137 #
1138 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
1139 #
1140 # 2) A compound object:
1141 #
1142 # struct T {
1143 # int m1;
1144 # int m2;
1145 # };
1146 # T x = { 3, 7 };
1147 #
1148 # { // Captured variable
1149 # name: &quot;x&quot;,
1150 # type: &quot;T&quot;,
1151 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1152 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1153 # }
1154 #
1155 # 3) A pointer where the pointee was captured:
1156 #
1157 # T x = { 3, 7 };
1158 # T* p = &amp;x;
1159 #
1160 # { // Captured variable
1161 # name: &quot;p&quot;,
1162 # type: &quot;T*&quot;,
1163 # value: &quot;0x00500500&quot;,
1164 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1165 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1166 # }
1167 #
1168 # 4) A pointer where the pointee was not captured:
1169 #
1170 # T* p = new T;
1171 #
1172 # { // Captured variable
1173 # name: &quot;p&quot;,
1174 # type: &quot;T*&quot;,
1175 # value: &quot;0x00400400&quot;
1176 # status { is_error: true, description { format: &quot;unavailable&quot; } }
1177 # }
1178 #
1179 # The status should describe the reason for the missing value,
1180 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
1181 #
1182 # Note that a null pointer should not have members.
1183 #
1184 # 5) An unnamed value:
1185 #
1186 # int* p = new int(7);
1187 #
1188 # { // Captured variable
1189 # name: &quot;p&quot;,
1190 # value: &quot;0x00500500&quot;,
1191 # type: &quot;int*&quot;,
1192 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
1193 #
1194 # 6) An unnamed pointer where the pointee was not captured:
1195 #
1196 # int* p = new int(7);
1197 # int** pp = &amp;p;
1198 #
1199 # { // Captured variable
1200 # name: &quot;pp&quot;,
1201 # value: &quot;0x00500500&quot;,
1202 # type: &quot;int**&quot;,
1203 # members {
1204 # value: &quot;0x00400400&quot;,
1205 # type: &quot;int*&quot;
1206 # status {
1207 # is_error: true,
1208 # description: { format: &quot;unavailable&quot; } }
1209 # }
1210 # }
1211 # }
1212 #
1213 # To optimize computation, memory and network traffic, variables that
1214 # repeat in the output multiple times can be stored once in a shared
1215 # variable table and be referenced using the `var_table_index` field. The
1216 # variables stored in the shared table are nameless and are essentially
1217 # a partition of the complete variable. To reconstruct the complete
1218 # variable, merge the referencing variable with the referenced variable.
1219 #
1220 # When using the shared variable table, the following variables:
1221 #
1222 # T x = { 3, 7 };
1223 # T* p = &amp;x;
1224 # T&amp; r = x;
1225 #
1226 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
1227 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
1228 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
1229 #
1230 # { // Shared variable table entry #3:
1231 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1232 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1233 # }
1234 #
1235 # Note that the pointer address is stored with the referencing variable
1236 # and not with the referenced variable. This allows the referenced variable
1237 # to be shared between pointers and references.
1238 #
1239 # The type field is optional. The debugger agent may or may not support it.
1240 &quot;members&quot;: [ # Members contained or pointed to by the variable.
1241 # Object with schema name: Variable
1242 ],
1243 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
1244 # unset. A status of a single variable only applies to that variable or
1245 # expression. The rest of breakpoint data still remains valid. Variables
1246 # might be reported in error state even when breakpoint is not in final
1247 # state.
1248 #
1249 # The message may refer to variable name with `refers_to` set to
1250 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1251 # In either case variable value and members will be unset.
1252 #
1253 # Example of error message applied to name: `Invalid expression syntax`.
1254 #
1255 # Example of information message applied to value: `Not captured`.
1256 #
1257 # Examples of error message applied to value:
1258 #
1259 # * `Malformed string`,
1260 # * `Field f not found in class C`
1261 # * `Null pointer dereference`
1262 # The message can indicate an error or informational status, and refer to
1263 # specific parts of the containing object.
1264 # For example, the `Breakpoint.status` field can indicate an error referring
1265 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
1266 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
1267 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
1268 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
1269 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1270 # character.
1271 #
1272 # Examples:
1273 #
1274 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
1275 # is loaded. Again, $0 is very important.`
1276 # * `Please pay $$10 to use $0 instead of $1.`
1277 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
1278 &quot;A String&quot;,
1279 ],
1280 },
1281 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
1282 },
1283 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
1284 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
1285 # `var_table_index`, `type` goes next to `value`. The interpretation of
1286 # a type is agent specific. It is recommended to include the dynamic type
1287 # rather than a static type of an object.
1288 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
1289 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
1290 # one variable can reference the same variable in the table. The
1291 # `var_table_index` field is an index into `variable_table` in Breakpoint.
1292 },
1293 ],
1294 &quot;location&quot;: { # Represents a location in the source code. # Source location of the call site.
1295 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
1296 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
1297 # Agents that do not support setting breakpoints on specific columns ignore
1298 # this field.
1299 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
1300 },
1301 &quot;function&quot;: &quot;A String&quot;, # Demangled function name at the call site.
1302 &quot;arguments&quot;: [ # Set of arguments passed to this function.
1303 # Note that this might not be populated for all stack frames.
1304 { # Represents a variable or an argument possibly of a compound object type.
1305 # Note how the following variables are represented:
1306 #
1307 # 1) A simple variable:
1308 #
1309 # int x = 5
1310 #
1311 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
1312 #
1313 # 2) A compound object:
1314 #
1315 # struct T {
1316 # int m1;
1317 # int m2;
1318 # };
1319 # T x = { 3, 7 };
1320 #
1321 # { // Captured variable
1322 # name: &quot;x&quot;,
1323 # type: &quot;T&quot;,
1324 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1325 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1326 # }
1327 #
1328 # 3) A pointer where the pointee was captured:
1329 #
1330 # T x = { 3, 7 };
1331 # T* p = &amp;x;
1332 #
1333 # { // Captured variable
1334 # name: &quot;p&quot;,
1335 # type: &quot;T*&quot;,
1336 # value: &quot;0x00500500&quot;,
1337 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1338 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1339 # }
1340 #
1341 # 4) A pointer where the pointee was not captured:
1342 #
1343 # T* p = new T;
1344 #
1345 # { // Captured variable
1346 # name: &quot;p&quot;,
1347 # type: &quot;T*&quot;,
1348 # value: &quot;0x00400400&quot;
1349 # status { is_error: true, description { format: &quot;unavailable&quot; } }
1350 # }
1351 #
1352 # The status should describe the reason for the missing value,
1353 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
1354 #
1355 # Note that a null pointer should not have members.
1356 #
1357 # 5) An unnamed value:
1358 #
1359 # int* p = new int(7);
1360 #
1361 # { // Captured variable
1362 # name: &quot;p&quot;,
1363 # value: &quot;0x00500500&quot;,
1364 # type: &quot;int*&quot;,
1365 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
1366 #
1367 # 6) An unnamed pointer where the pointee was not captured:
1368 #
1369 # int* p = new int(7);
1370 # int** pp = &amp;p;
1371 #
1372 # { // Captured variable
1373 # name: &quot;pp&quot;,
1374 # value: &quot;0x00500500&quot;,
1375 # type: &quot;int**&quot;,
1376 # members {
1377 # value: &quot;0x00400400&quot;,
1378 # type: &quot;int*&quot;
1379 # status {
1380 # is_error: true,
1381 # description: { format: &quot;unavailable&quot; } }
1382 # }
1383 # }
1384 # }
1385 #
1386 # To optimize computation, memory and network traffic, variables that
1387 # repeat in the output multiple times can be stored once in a shared
1388 # variable table and be referenced using the `var_table_index` field. The
1389 # variables stored in the shared table are nameless and are essentially
1390 # a partition of the complete variable. To reconstruct the complete
1391 # variable, merge the referencing variable with the referenced variable.
1392 #
1393 # When using the shared variable table, the following variables:
1394 #
1395 # T x = { 3, 7 };
1396 # T* p = &amp;x;
1397 # T&amp; r = x;
1398 #
1399 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
1400 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
1401 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
1402 #
1403 # { // Shared variable table entry #3:
1404 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1405 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1406 # }
1407 #
1408 # Note that the pointer address is stored with the referencing variable
1409 # and not with the referenced variable. This allows the referenced variable
1410 # to be shared between pointers and references.
1411 #
1412 # The type field is optional. The debugger agent may or may not support it.
1413 &quot;members&quot;: [ # Members contained or pointed to by the variable.
1414 # Object with schema name: Variable
1415 ],
1416 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
1417 # unset. A status of a single variable only applies to that variable or
1418 # expression. The rest of breakpoint data still remains valid. Variables
1419 # might be reported in error state even when breakpoint is not in final
1420 # state.
1421 #
1422 # The message may refer to variable name with `refers_to` set to
1423 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1424 # In either case variable value and members will be unset.
1425 #
1426 # Example of error message applied to name: `Invalid expression syntax`.
1427 #
1428 # Example of information message applied to value: `Not captured`.
1429 #
1430 # Examples of error message applied to value:
1431 #
1432 # * `Malformed string`,
1433 # * `Field f not found in class C`
1434 # * `Null pointer dereference`
1435 # The message can indicate an error or informational status, and refer to
1436 # specific parts of the containing object.
1437 # For example, the `Breakpoint.status` field can indicate an error referring
1438 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
1439 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
1440 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
1441 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
1442 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1443 # character.
1444 #
1445 # Examples:
1446 #
1447 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
1448 # is loaded. Again, $0 is very important.`
1449 # * `Please pay $$10 to use $0 instead of $1.`
1450 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
1451 &quot;A String&quot;,
1452 ],
1453 },
1454 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
1455 },
1456 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
1457 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
1458 # `var_table_index`, `type` goes next to `value`. The interpretation of
1459 # a type is agent specific. It is recommended to include the dynamic type
1460 # rather than a static type of an object.
1461 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
1462 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
1463 # one variable can reference the same variable in the table. The
1464 # `var_table_index` field is an index into `variable_table` in Breakpoint.
1465 },
1466 ],
1467 },
1468 ],
1469 &quot;condition&quot;: &quot;A String&quot;, # Condition that triggers the breakpoint.
1470 # The condition is a compound boolean expression composed using expressions
1471 # in a programming language at the source location.
Bu Sun Kim65020912020-05-20 12:08:20 -07001472 &quot;canaryExpireTime&quot;: &quot;A String&quot;, # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
1473 # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
1474 &quot;status&quot;: { # Represents a contextual status message. # Breakpoint status.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001475 #
1476 # The status includes an error flag and a human readable message.
1477 # This field is usually unset. The message can be either
1478 # informational or an error message. Regardless, clients should always
1479 # display the text message back to the user.
1480 #
1481 # Error status indicates complete failure of the breakpoint.
1482 #
1483 # Example (non-final state): `Still loading symbols...`
1484 #
1485 # Examples (final state):
1486 #
1487 # * `Invalid line number` referring to location
1488 # * `Field f not found in class C` referring to condition
1489 # The message can indicate an error or informational status, and refer to
1490 # specific parts of the containing object.
1491 # For example, the `Breakpoint.status` field can indicate an error referring
1492 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001493 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
1494 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
Bu Sun Kim65020912020-05-20 12:08:20 -07001495 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001496 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1497 # character.
1498 #
1499 # Examples:
1500 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001501 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001502 # is loaded. Again, $0 is very important.`
1503 # * `Please pay $$10 to use $0 instead of $1.`
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001504 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
1505 &quot;A String&quot;,
1506 ],
Takashi Matsuo06694102015-09-11 13:55:40 -07001507 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001508 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07001509 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001510 &quot;state&quot;: &quot;A String&quot;, # The current state of the breakpoint.
1511 &quot;userEmail&quot;: &quot;A String&quot;, # E-mail address of the user that created this breakpoint
1512 &quot;action&quot;: &quot;A String&quot;, # Action that the agent should perform when the code at the
1513 # breakpoint location is hit.
1514 &quot;logLevel&quot;: &quot;A String&quot;, # Indicates the severity of the log. Only relevant when action is `LOG`.
1515 &quot;id&quot;: &quot;A String&quot;, # Breakpoint identifier, unique in the scope of the debuggee.
1516 &quot;location&quot;: { # Represents a location in the source code. # Breakpoint source location.
1517 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
1518 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
1519 # Agents that do not support setting breakpoints on specific columns ignore
1520 # this field.
1521 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
1522 },
1523 &quot;finalTime&quot;: &quot;A String&quot;, # Time this breakpoint was finalized as seen by the server in seconds
1524 # resolution.
1525 &quot;variableTable&quot;: [ # The `variable_table` exists to aid with computation, memory and network
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001526 # traffic optimization. It enables storing a variable once and reference
1527 # it from multiple variables, including variables stored in the
1528 # `variable_table` itself.
1529 # For example, the same `this` object, which may appear at many levels of
1530 # the stack, can have all of its data stored once in this table. The
1531 # stack frame variables then would hold only a reference to it.
1532 #
1533 # The variable `var_table_index` field is an index into this repeated field.
1534 # The stored objects are nameless and get their name from the referencing
1535 # variable. The effective variable is a merge of the referencing variable
1536 # and the referenced variable.
1537 { # Represents a variable or an argument possibly of a compound object type.
1538 # Note how the following variables are represented:
1539 #
1540 # 1) A simple variable:
1541 #
1542 # int x = 5
1543 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001544 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001545 #
1546 # 2) A compound object:
1547 #
1548 # struct T {
1549 # int m1;
1550 # int m2;
1551 # };
1552 # T x = { 3, 7 };
1553 #
1554 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001555 # name: &quot;x&quot;,
1556 # type: &quot;T&quot;,
1557 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1558 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001559 # }
1560 #
1561 # 3) A pointer where the pointee was captured:
1562 #
1563 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07001564 # T* p = &amp;x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001565 #
1566 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001567 # name: &quot;p&quot;,
1568 # type: &quot;T*&quot;,
1569 # value: &quot;0x00500500&quot;,
1570 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1571 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001572 # }
1573 #
1574 # 4) A pointer where the pointee was not captured:
1575 #
1576 # T* p = new T;
1577 #
1578 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001579 # name: &quot;p&quot;,
1580 # type: &quot;T*&quot;,
1581 # value: &quot;0x00400400&quot;
1582 # status { is_error: true, description { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001583 # }
1584 #
1585 # The status should describe the reason for the missing value,
Dan O'Mearadd494642020-05-01 07:42:23 -07001586 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001587 #
1588 # Note that a null pointer should not have members.
1589 #
1590 # 5) An unnamed value:
1591 #
1592 # int* p = new int(7);
1593 #
1594 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001595 # name: &quot;p&quot;,
1596 # value: &quot;0x00500500&quot;,
1597 # type: &quot;int*&quot;,
1598 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001599 #
1600 # 6) An unnamed pointer where the pointee was not captured:
1601 #
1602 # int* p = new int(7);
Dan O'Mearadd494642020-05-01 07:42:23 -07001603 # int** pp = &amp;p;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001604 #
1605 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001606 # name: &quot;pp&quot;,
1607 # value: &quot;0x00500500&quot;,
1608 # type: &quot;int**&quot;,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001609 # members {
Bu Sun Kim65020912020-05-20 12:08:20 -07001610 # value: &quot;0x00400400&quot;,
1611 # type: &quot;int*&quot;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001612 # status {
1613 # is_error: true,
Bu Sun Kim65020912020-05-20 12:08:20 -07001614 # description: { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001615 # }
1616 # }
1617 # }
1618 #
1619 # To optimize computation, memory and network traffic, variables that
1620 # repeat in the output multiple times can be stored once in a shared
1621 # variable table and be referenced using the `var_table_index` field. The
1622 # variables stored in the shared table are nameless and are essentially
1623 # a partition of the complete variable. To reconstruct the complete
1624 # variable, merge the referencing variable with the referenced variable.
1625 #
1626 # When using the shared variable table, the following variables:
1627 #
1628 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07001629 # T* p = &amp;x;
1630 # T&amp; r = x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001631 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001632 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
1633 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
1634 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001635 #
1636 # { // Shared variable table entry #3:
Bu Sun Kim65020912020-05-20 12:08:20 -07001637 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1638 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001639 # }
1640 #
1641 # Note that the pointer address is stored with the referencing variable
1642 # and not with the referenced variable. This allows the referenced variable
1643 # to be shared between pointers and references.
1644 #
1645 # The type field is optional. The debugger agent may or may not support it.
Bu Sun Kim65020912020-05-20 12:08:20 -07001646 &quot;members&quot;: [ # Members contained or pointed to by the variable.
1647 # Object with schema name: Variable
1648 ],
1649 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001650 # unset. A status of a single variable only applies to that variable or
1651 # expression. The rest of breakpoint data still remains valid. Variables
1652 # might be reported in error state even when breakpoint is not in final
1653 # state.
1654 #
1655 # The message may refer to variable name with `refers_to` set to
1656 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1657 # In either case variable value and members will be unset.
1658 #
1659 # Example of error message applied to name: `Invalid expression syntax`.
1660 #
1661 # Example of information message applied to value: `Not captured`.
1662 #
1663 # Examples of error message applied to value:
1664 #
1665 # * `Malformed string`,
1666 # * `Field f not found in class C`
1667 # * `Null pointer dereference`
1668 # The message can indicate an error or informational status, and refer to
1669 # specific parts of the containing object.
1670 # For example, the `Breakpoint.status` field can indicate an error referring
1671 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001672 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
1673 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
Bu Sun Kim65020912020-05-20 12:08:20 -07001674 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001675 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1676 # character.
1677 #
1678 # Examples:
1679 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001680 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001681 # is loaded. Again, $0 is very important.`
1682 # * `Please pay $$10 to use $0 instead of $1.`
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001683 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
1684 &quot;A String&quot;,
1685 ],
Takashi Matsuo06694102015-09-11 13:55:40 -07001686 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001687 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07001688 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001689 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
1690 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001691 # `var_table_index`, `type` goes next to `value`. The interpretation of
1692 # a type is agent specific. It is recommended to include the dynamic type
1693 # rather than a static type of an object.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001694 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
Bu Sun Kim65020912020-05-20 12:08:20 -07001695 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
1696 # one variable can reference the same variable in the table. The
1697 # `var_table_index` field is an index into `variable_table` in Breakpoint.
Takashi Matsuo06694102015-09-11 13:55:40 -07001698 },
1699 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001700 &quot;createTime&quot;: &quot;A String&quot;, # Time this breakpoint was created by the server in seconds resolution.
1701 &quot;logMessageFormat&quot;: &quot;A String&quot;, # Only relevant when action is `LOG`. Defines the message to log when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001702 # the breakpoint hits. The message may include parameter placeholders `$0`,
1703 # `$1`, etc. These placeholders are replaced with the evaluated value
1704 # of the appropriate expression. Expressions not referenced in
1705 # `log_message_format` are not logged.
1706 #
1707 # Example: `Message received, id = $0, count = $1` with
1708 # `expressions` = `[ message.id, message.count ]`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001709 &quot;labels&quot;: { # A set of custom breakpoint properties, populated by the agent, to be
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001710 # displayed to the user.
Bu Sun Kim65020912020-05-20 12:08:20 -07001711 &quot;a_key&quot;: &quot;A String&quot;,
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -07001712 },
Takashi Matsuo06694102015-09-11 13:55:40 -07001713 },
1714 ],
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001715 &quot;nextWaitToken&quot;: &quot;A String&quot;, # A wait token that can be used in the next call to `list` (REST) or
1716 # `ListBreakpoints` (RPC) to block until the list of breakpoints has changes.
Takashi Matsuo06694102015-09-11 13:55:40 -07001717 }</pre>
1718</div>
1719
1720<div class="method">
Bu Sun Kim65020912020-05-20 12:08:20 -07001721 <code class="details" id="set">set(debuggeeId, body=None, canaryOption=None, clientVersion=None, x__xgafv=None)</code>
Takashi Matsuo06694102015-09-11 13:55:40 -07001722 <pre>Sets the breakpoint to the debuggee.
1723
1724Args:
Dan O'Mearadd494642020-05-01 07:42:23 -07001725 debuggeeId: string, Required. ID of the debuggee where the breakpoint is to be set. (required)
1726 body: object, The request body.
Takashi Matsuo06694102015-09-11 13:55:40 -07001727 The object takes the form of:
1728
Dan O'Mearadd494642020-05-01 07:42:23 -07001729{ # ------------------------------------------------------------------------------
1730 # ## Breakpoint (the resource)
1731 #
1732 # Represents the breakpoint specification, status and results.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07001733 &quot;expressions&quot;: [ # List of read-only expressions to evaluate at the breakpoint location.
1734 # The expressions are composed using expressions in the programming language
1735 # at the source location. If the breakpoint action is `LOG`, the evaluated
1736 # expressions are included in log statements.
1737 &quot;A String&quot;,
1738 ],
1739 &quot;evaluatedExpressions&quot;: [ # Values of evaluated expressions at breakpoint time.
1740 # The evaluated expressions appear in exactly the same order they
1741 # are listed in the `expressions` field.
1742 # The `name` field holds the original expression text, the `value` or
1743 # `members` field holds the result of the evaluated expression.
1744 # If the expression cannot be evaluated, the `status` inside the `Variable`
1745 # will indicate an error and contain the error text.
1746 { # Represents a variable or an argument possibly of a compound object type.
1747 # Note how the following variables are represented:
1748 #
1749 # 1) A simple variable:
1750 #
1751 # int x = 5
1752 #
1753 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
1754 #
1755 # 2) A compound object:
1756 #
1757 # struct T {
1758 # int m1;
1759 # int m2;
1760 # };
1761 # T x = { 3, 7 };
1762 #
1763 # { // Captured variable
1764 # name: &quot;x&quot;,
1765 # type: &quot;T&quot;,
1766 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1767 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1768 # }
1769 #
1770 # 3) A pointer where the pointee was captured:
1771 #
1772 # T x = { 3, 7 };
1773 # T* p = &amp;x;
1774 #
1775 # { // Captured variable
1776 # name: &quot;p&quot;,
1777 # type: &quot;T*&quot;,
1778 # value: &quot;0x00500500&quot;,
1779 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1780 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1781 # }
1782 #
1783 # 4) A pointer where the pointee was not captured:
1784 #
1785 # T* p = new T;
1786 #
1787 # { // Captured variable
1788 # name: &quot;p&quot;,
1789 # type: &quot;T*&quot;,
1790 # value: &quot;0x00400400&quot;
1791 # status { is_error: true, description { format: &quot;unavailable&quot; } }
1792 # }
1793 #
1794 # The status should describe the reason for the missing value,
1795 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
1796 #
1797 # Note that a null pointer should not have members.
1798 #
1799 # 5) An unnamed value:
1800 #
1801 # int* p = new int(7);
1802 #
1803 # { // Captured variable
1804 # name: &quot;p&quot;,
1805 # value: &quot;0x00500500&quot;,
1806 # type: &quot;int*&quot;,
1807 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
1808 #
1809 # 6) An unnamed pointer where the pointee was not captured:
1810 #
1811 # int* p = new int(7);
1812 # int** pp = &amp;p;
1813 #
1814 # { // Captured variable
1815 # name: &quot;pp&quot;,
1816 # value: &quot;0x00500500&quot;,
1817 # type: &quot;int**&quot;,
1818 # members {
1819 # value: &quot;0x00400400&quot;,
1820 # type: &quot;int*&quot;
1821 # status {
1822 # is_error: true,
1823 # description: { format: &quot;unavailable&quot; } }
1824 # }
1825 # }
1826 # }
1827 #
1828 # To optimize computation, memory and network traffic, variables that
1829 # repeat in the output multiple times can be stored once in a shared
1830 # variable table and be referenced using the `var_table_index` field. The
1831 # variables stored in the shared table are nameless and are essentially
1832 # a partition of the complete variable. To reconstruct the complete
1833 # variable, merge the referencing variable with the referenced variable.
1834 #
1835 # When using the shared variable table, the following variables:
1836 #
1837 # T x = { 3, 7 };
1838 # T* p = &amp;x;
1839 # T&amp; r = x;
1840 #
1841 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
1842 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
1843 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
1844 #
1845 # { // Shared variable table entry #3:
1846 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1847 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1848 # }
1849 #
1850 # Note that the pointer address is stored with the referencing variable
1851 # and not with the referenced variable. This allows the referenced variable
1852 # to be shared between pointers and references.
1853 #
1854 # The type field is optional. The debugger agent may or may not support it.
1855 &quot;members&quot;: [ # Members contained or pointed to by the variable.
1856 # Object with schema name: Variable
1857 ],
1858 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
1859 # unset. A status of a single variable only applies to that variable or
1860 # expression. The rest of breakpoint data still remains valid. Variables
1861 # might be reported in error state even when breakpoint is not in final
1862 # state.
1863 #
1864 # The message may refer to variable name with `refers_to` set to
1865 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1866 # In either case variable value and members will be unset.
1867 #
1868 # Example of error message applied to name: `Invalid expression syntax`.
1869 #
1870 # Example of information message applied to value: `Not captured`.
1871 #
1872 # Examples of error message applied to value:
1873 #
1874 # * `Malformed string`,
1875 # * `Field f not found in class C`
1876 # * `Null pointer dereference`
1877 # The message can indicate an error or informational status, and refer to
1878 # specific parts of the containing object.
1879 # For example, the `Breakpoint.status` field can indicate an error referring
1880 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
1881 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
1882 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
1883 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
1884 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1885 # character.
1886 #
1887 # Examples:
1888 #
1889 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
1890 # is loaded. Again, $0 is very important.`
1891 # * `Please pay $$10 to use $0 instead of $1.`
1892 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
1893 &quot;A String&quot;,
1894 ],
1895 },
1896 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
1897 },
1898 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
1899 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
1900 # `var_table_index`, `type` goes next to `value`. The interpretation of
1901 # a type is agent specific. It is recommended to include the dynamic type
1902 # rather than a static type of an object.
1903 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
1904 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
1905 # one variable can reference the same variable in the table. The
1906 # `var_table_index` field is an index into `variable_table` in Breakpoint.
1907 },
1908 ],
1909 &quot;isFinalState&quot;: True or False, # When true, indicates that this is a final result and the
1910 # breakpoint state will not change from here on.
1911 &quot;stackFrames&quot;: [ # The stack at breakpoint time, where stack_frames[0] represents the most
1912 # recently entered function.
1913 { # Represents a stack frame context.
1914 &quot;locals&quot;: [ # Set of local variables at the stack frame location.
1915 # Note that this might not be populated for all stack frames.
1916 { # Represents a variable or an argument possibly of a compound object type.
1917 # Note how the following variables are represented:
1918 #
1919 # 1) A simple variable:
1920 #
1921 # int x = 5
1922 #
1923 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
1924 #
1925 # 2) A compound object:
1926 #
1927 # struct T {
1928 # int m1;
1929 # int m2;
1930 # };
1931 # T x = { 3, 7 };
1932 #
1933 # { // Captured variable
1934 # name: &quot;x&quot;,
1935 # type: &quot;T&quot;,
1936 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1937 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1938 # }
1939 #
1940 # 3) A pointer where the pointee was captured:
1941 #
1942 # T x = { 3, 7 };
1943 # T* p = &amp;x;
1944 #
1945 # { // Captured variable
1946 # name: &quot;p&quot;,
1947 # type: &quot;T*&quot;,
1948 # value: &quot;0x00500500&quot;,
1949 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1950 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1951 # }
1952 #
1953 # 4) A pointer where the pointee was not captured:
1954 #
1955 # T* p = new T;
1956 #
1957 # { // Captured variable
1958 # name: &quot;p&quot;,
1959 # type: &quot;T*&quot;,
1960 # value: &quot;0x00400400&quot;
1961 # status { is_error: true, description { format: &quot;unavailable&quot; } }
1962 # }
1963 #
1964 # The status should describe the reason for the missing value,
1965 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
1966 #
1967 # Note that a null pointer should not have members.
1968 #
1969 # 5) An unnamed value:
1970 #
1971 # int* p = new int(7);
1972 #
1973 # { // Captured variable
1974 # name: &quot;p&quot;,
1975 # value: &quot;0x00500500&quot;,
1976 # type: &quot;int*&quot;,
1977 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
1978 #
1979 # 6) An unnamed pointer where the pointee was not captured:
1980 #
1981 # int* p = new int(7);
1982 # int** pp = &amp;p;
1983 #
1984 # { // Captured variable
1985 # name: &quot;pp&quot;,
1986 # value: &quot;0x00500500&quot;,
1987 # type: &quot;int**&quot;,
1988 # members {
1989 # value: &quot;0x00400400&quot;,
1990 # type: &quot;int*&quot;
1991 # status {
1992 # is_error: true,
1993 # description: { format: &quot;unavailable&quot; } }
1994 # }
1995 # }
1996 # }
1997 #
1998 # To optimize computation, memory and network traffic, variables that
1999 # repeat in the output multiple times can be stored once in a shared
2000 # variable table and be referenced using the `var_table_index` field. The
2001 # variables stored in the shared table are nameless and are essentially
2002 # a partition of the complete variable. To reconstruct the complete
2003 # variable, merge the referencing variable with the referenced variable.
2004 #
2005 # When using the shared variable table, the following variables:
2006 #
2007 # T x = { 3, 7 };
2008 # T* p = &amp;x;
2009 # T&amp; r = x;
2010 #
2011 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
2012 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
2013 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
2014 #
2015 # { // Shared variable table entry #3:
2016 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2017 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2018 # }
2019 #
2020 # Note that the pointer address is stored with the referencing variable
2021 # and not with the referenced variable. This allows the referenced variable
2022 # to be shared between pointers and references.
2023 #
2024 # The type field is optional. The debugger agent may or may not support it.
2025 &quot;members&quot;: [ # Members contained or pointed to by the variable.
2026 # Object with schema name: Variable
2027 ],
2028 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
2029 # unset. A status of a single variable only applies to that variable or
2030 # expression. The rest of breakpoint data still remains valid. Variables
2031 # might be reported in error state even when breakpoint is not in final
2032 # state.
2033 #
2034 # The message may refer to variable name with `refers_to` set to
2035 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2036 # In either case variable value and members will be unset.
2037 #
2038 # Example of error message applied to name: `Invalid expression syntax`.
2039 #
2040 # Example of information message applied to value: `Not captured`.
2041 #
2042 # Examples of error message applied to value:
2043 #
2044 # * `Malformed string`,
2045 # * `Field f not found in class C`
2046 # * `Null pointer dereference`
2047 # The message can indicate an error or informational status, and refer to
2048 # specific parts of the containing object.
2049 # For example, the `Breakpoint.status` field can indicate an error referring
2050 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
2051 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
2052 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
2053 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
2054 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2055 # character.
2056 #
2057 # Examples:
2058 #
2059 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
2060 # is loaded. Again, $0 is very important.`
2061 # * `Please pay $$10 to use $0 instead of $1.`
2062 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
2063 &quot;A String&quot;,
2064 ],
2065 },
2066 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
2067 },
2068 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
2069 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
2070 # `var_table_index`, `type` goes next to `value`. The interpretation of
2071 # a type is agent specific. It is recommended to include the dynamic type
2072 # rather than a static type of an object.
2073 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
2074 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
2075 # one variable can reference the same variable in the table. The
2076 # `var_table_index` field is an index into `variable_table` in Breakpoint.
2077 },
2078 ],
2079 &quot;location&quot;: { # Represents a location in the source code. # Source location of the call site.
2080 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
2081 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
2082 # Agents that do not support setting breakpoints on specific columns ignore
2083 # this field.
2084 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
2085 },
2086 &quot;function&quot;: &quot;A String&quot;, # Demangled function name at the call site.
2087 &quot;arguments&quot;: [ # Set of arguments passed to this function.
2088 # Note that this might not be populated for all stack frames.
2089 { # Represents a variable or an argument possibly of a compound object type.
2090 # Note how the following variables are represented:
2091 #
2092 # 1) A simple variable:
2093 #
2094 # int x = 5
2095 #
2096 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
2097 #
2098 # 2) A compound object:
2099 #
2100 # struct T {
2101 # int m1;
2102 # int m2;
2103 # };
2104 # T x = { 3, 7 };
2105 #
2106 # { // Captured variable
2107 # name: &quot;x&quot;,
2108 # type: &quot;T&quot;,
2109 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2110 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2111 # }
2112 #
2113 # 3) A pointer where the pointee was captured:
2114 #
2115 # T x = { 3, 7 };
2116 # T* p = &amp;x;
2117 #
2118 # { // Captured variable
2119 # name: &quot;p&quot;,
2120 # type: &quot;T*&quot;,
2121 # value: &quot;0x00500500&quot;,
2122 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2123 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2124 # }
2125 #
2126 # 4) A pointer where the pointee was not captured:
2127 #
2128 # T* p = new T;
2129 #
2130 # { // Captured variable
2131 # name: &quot;p&quot;,
2132 # type: &quot;T*&quot;,
2133 # value: &quot;0x00400400&quot;
2134 # status { is_error: true, description { format: &quot;unavailable&quot; } }
2135 # }
2136 #
2137 # The status should describe the reason for the missing value,
2138 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
2139 #
2140 # Note that a null pointer should not have members.
2141 #
2142 # 5) An unnamed value:
2143 #
2144 # int* p = new int(7);
2145 #
2146 # { // Captured variable
2147 # name: &quot;p&quot;,
2148 # value: &quot;0x00500500&quot;,
2149 # type: &quot;int*&quot;,
2150 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
2151 #
2152 # 6) An unnamed pointer where the pointee was not captured:
2153 #
2154 # int* p = new int(7);
2155 # int** pp = &amp;p;
2156 #
2157 # { // Captured variable
2158 # name: &quot;pp&quot;,
2159 # value: &quot;0x00500500&quot;,
2160 # type: &quot;int**&quot;,
2161 # members {
2162 # value: &quot;0x00400400&quot;,
2163 # type: &quot;int*&quot;
2164 # status {
2165 # is_error: true,
2166 # description: { format: &quot;unavailable&quot; } }
2167 # }
2168 # }
2169 # }
2170 #
2171 # To optimize computation, memory and network traffic, variables that
2172 # repeat in the output multiple times can be stored once in a shared
2173 # variable table and be referenced using the `var_table_index` field. The
2174 # variables stored in the shared table are nameless and are essentially
2175 # a partition of the complete variable. To reconstruct the complete
2176 # variable, merge the referencing variable with the referenced variable.
2177 #
2178 # When using the shared variable table, the following variables:
2179 #
2180 # T x = { 3, 7 };
2181 # T* p = &amp;x;
2182 # T&amp; r = x;
2183 #
2184 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
2185 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
2186 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
2187 #
2188 # { // Shared variable table entry #3:
2189 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2190 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2191 # }
2192 #
2193 # Note that the pointer address is stored with the referencing variable
2194 # and not with the referenced variable. This allows the referenced variable
2195 # to be shared between pointers and references.
2196 #
2197 # The type field is optional. The debugger agent may or may not support it.
2198 &quot;members&quot;: [ # Members contained or pointed to by the variable.
2199 # Object with schema name: Variable
2200 ],
2201 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
2202 # unset. A status of a single variable only applies to that variable or
2203 # expression. The rest of breakpoint data still remains valid. Variables
2204 # might be reported in error state even when breakpoint is not in final
2205 # state.
2206 #
2207 # The message may refer to variable name with `refers_to` set to
2208 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2209 # In either case variable value and members will be unset.
2210 #
2211 # Example of error message applied to name: `Invalid expression syntax`.
2212 #
2213 # Example of information message applied to value: `Not captured`.
2214 #
2215 # Examples of error message applied to value:
2216 #
2217 # * `Malformed string`,
2218 # * `Field f not found in class C`
2219 # * `Null pointer dereference`
2220 # The message can indicate an error or informational status, and refer to
2221 # specific parts of the containing object.
2222 # For example, the `Breakpoint.status` field can indicate an error referring
2223 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
2224 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
2225 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
2226 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
2227 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2228 # character.
2229 #
2230 # Examples:
2231 #
2232 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
2233 # is loaded. Again, $0 is very important.`
2234 # * `Please pay $$10 to use $0 instead of $1.`
2235 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
2236 &quot;A String&quot;,
2237 ],
2238 },
2239 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
2240 },
2241 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
2242 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
2243 # `var_table_index`, `type` goes next to `value`. The interpretation of
2244 # a type is agent specific. It is recommended to include the dynamic type
2245 # rather than a static type of an object.
2246 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
2247 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
2248 # one variable can reference the same variable in the table. The
2249 # `var_table_index` field is an index into `variable_table` in Breakpoint.
2250 },
2251 ],
2252 },
2253 ],
2254 &quot;condition&quot;: &quot;A String&quot;, # Condition that triggers the breakpoint.
2255 # The condition is a compound boolean expression composed using expressions
2256 # in a programming language at the source location.
Bu Sun Kim65020912020-05-20 12:08:20 -07002257 &quot;canaryExpireTime&quot;: &quot;A String&quot;, # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
2258 # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
2259 &quot;status&quot;: { # Represents a contextual status message. # Breakpoint status.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002260 #
2261 # The status includes an error flag and a human readable message.
2262 # This field is usually unset. The message can be either
2263 # informational or an error message. Regardless, clients should always
2264 # display the text message back to the user.
2265 #
2266 # Error status indicates complete failure of the breakpoint.
2267 #
2268 # Example (non-final state): `Still loading symbols...`
2269 #
2270 # Examples (final state):
2271 #
2272 # * `Invalid line number` referring to location
2273 # * `Field f not found in class C` referring to condition
2274 # The message can indicate an error or informational status, and refer to
2275 # specific parts of the containing object.
2276 # For example, the `Breakpoint.status` field can indicate an error referring
2277 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002278 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
2279 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
Bu Sun Kim65020912020-05-20 12:08:20 -07002280 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002281 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2282 # character.
2283 #
2284 # Examples:
2285 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002286 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002287 # is loaded. Again, $0 is very important.`
2288 # * `Please pay $$10 to use $0 instead of $1.`
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002289 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
2290 &quot;A String&quot;,
2291 ],
Takashi Matsuo06694102015-09-11 13:55:40 -07002292 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002293 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07002294 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002295 &quot;state&quot;: &quot;A String&quot;, # The current state of the breakpoint.
2296 &quot;userEmail&quot;: &quot;A String&quot;, # E-mail address of the user that created this breakpoint
2297 &quot;action&quot;: &quot;A String&quot;, # Action that the agent should perform when the code at the
2298 # breakpoint location is hit.
2299 &quot;logLevel&quot;: &quot;A String&quot;, # Indicates the severity of the log. Only relevant when action is `LOG`.
2300 &quot;id&quot;: &quot;A String&quot;, # Breakpoint identifier, unique in the scope of the debuggee.
2301 &quot;location&quot;: { # Represents a location in the source code. # Breakpoint source location.
2302 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
2303 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
2304 # Agents that do not support setting breakpoints on specific columns ignore
2305 # this field.
2306 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
2307 },
2308 &quot;finalTime&quot;: &quot;A String&quot;, # Time this breakpoint was finalized as seen by the server in seconds
2309 # resolution.
2310 &quot;variableTable&quot;: [ # The `variable_table` exists to aid with computation, memory and network
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002311 # traffic optimization. It enables storing a variable once and reference
2312 # it from multiple variables, including variables stored in the
2313 # `variable_table` itself.
2314 # For example, the same `this` object, which may appear at many levels of
2315 # the stack, can have all of its data stored once in this table. The
2316 # stack frame variables then would hold only a reference to it.
2317 #
2318 # The variable `var_table_index` field is an index into this repeated field.
2319 # The stored objects are nameless and get their name from the referencing
2320 # variable. The effective variable is a merge of the referencing variable
2321 # and the referenced variable.
2322 { # Represents a variable or an argument possibly of a compound object type.
2323 # Note how the following variables are represented:
2324 #
2325 # 1) A simple variable:
2326 #
2327 # int x = 5
2328 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002329 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002330 #
2331 # 2) A compound object:
2332 #
2333 # struct T {
2334 # int m1;
2335 # int m2;
2336 # };
2337 # T x = { 3, 7 };
2338 #
2339 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002340 # name: &quot;x&quot;,
2341 # type: &quot;T&quot;,
2342 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2343 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002344 # }
2345 #
2346 # 3) A pointer where the pointee was captured:
2347 #
2348 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07002349 # T* p = &amp;x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002350 #
2351 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002352 # name: &quot;p&quot;,
2353 # type: &quot;T*&quot;,
2354 # value: &quot;0x00500500&quot;,
2355 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2356 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002357 # }
2358 #
2359 # 4) A pointer where the pointee was not captured:
2360 #
2361 # T* p = new T;
2362 #
2363 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002364 # name: &quot;p&quot;,
2365 # type: &quot;T*&quot;,
2366 # value: &quot;0x00400400&quot;
2367 # status { is_error: true, description { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002368 # }
2369 #
2370 # The status should describe the reason for the missing value,
Dan O'Mearadd494642020-05-01 07:42:23 -07002371 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002372 #
2373 # Note that a null pointer should not have members.
2374 #
2375 # 5) An unnamed value:
2376 #
2377 # int* p = new int(7);
2378 #
2379 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002380 # name: &quot;p&quot;,
2381 # value: &quot;0x00500500&quot;,
2382 # type: &quot;int*&quot;,
2383 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002384 #
2385 # 6) An unnamed pointer where the pointee was not captured:
2386 #
2387 # int* p = new int(7);
Dan O'Mearadd494642020-05-01 07:42:23 -07002388 # int** pp = &amp;p;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002389 #
2390 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002391 # name: &quot;pp&quot;,
2392 # value: &quot;0x00500500&quot;,
2393 # type: &quot;int**&quot;,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002394 # members {
Bu Sun Kim65020912020-05-20 12:08:20 -07002395 # value: &quot;0x00400400&quot;,
2396 # type: &quot;int*&quot;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002397 # status {
2398 # is_error: true,
Bu Sun Kim65020912020-05-20 12:08:20 -07002399 # description: { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002400 # }
2401 # }
2402 # }
2403 #
2404 # To optimize computation, memory and network traffic, variables that
2405 # repeat in the output multiple times can be stored once in a shared
2406 # variable table and be referenced using the `var_table_index` field. The
2407 # variables stored in the shared table are nameless and are essentially
2408 # a partition of the complete variable. To reconstruct the complete
2409 # variable, merge the referencing variable with the referenced variable.
2410 #
2411 # When using the shared variable table, the following variables:
2412 #
2413 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07002414 # T* p = &amp;x;
2415 # T&amp; r = x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002416 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002417 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
2418 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
2419 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002420 #
2421 # { // Shared variable table entry #3:
Bu Sun Kim65020912020-05-20 12:08:20 -07002422 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2423 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002424 # }
2425 #
2426 # Note that the pointer address is stored with the referencing variable
2427 # and not with the referenced variable. This allows the referenced variable
2428 # to be shared between pointers and references.
2429 #
2430 # The type field is optional. The debugger agent may or may not support it.
Bu Sun Kim65020912020-05-20 12:08:20 -07002431 &quot;members&quot;: [ # Members contained or pointed to by the variable.
2432 # Object with schema name: Variable
2433 ],
2434 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002435 # unset. A status of a single variable only applies to that variable or
2436 # expression. The rest of breakpoint data still remains valid. Variables
2437 # might be reported in error state even when breakpoint is not in final
2438 # state.
2439 #
2440 # The message may refer to variable name with `refers_to` set to
2441 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2442 # In either case variable value and members will be unset.
2443 #
2444 # Example of error message applied to name: `Invalid expression syntax`.
2445 #
2446 # Example of information message applied to value: `Not captured`.
2447 #
2448 # Examples of error message applied to value:
2449 #
2450 # * `Malformed string`,
2451 # * `Field f not found in class C`
2452 # * `Null pointer dereference`
2453 # The message can indicate an error or informational status, and refer to
2454 # specific parts of the containing object.
2455 # For example, the `Breakpoint.status` field can indicate an error referring
2456 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002457 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
2458 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
Bu Sun Kim65020912020-05-20 12:08:20 -07002459 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002460 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2461 # character.
2462 #
2463 # Examples:
2464 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002465 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002466 # is loaded. Again, $0 is very important.`
2467 # * `Please pay $$10 to use $0 instead of $1.`
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002468 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
2469 &quot;A String&quot;,
2470 ],
Takashi Matsuo06694102015-09-11 13:55:40 -07002471 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002472 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07002473 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002474 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
2475 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002476 # `var_table_index`, `type` goes next to `value`. The interpretation of
2477 # a type is agent specific. It is recommended to include the dynamic type
2478 # rather than a static type of an object.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002479 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
Bu Sun Kim65020912020-05-20 12:08:20 -07002480 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
2481 # one variable can reference the same variable in the table. The
2482 # `var_table_index` field is an index into `variable_table` in Breakpoint.
Takashi Matsuo06694102015-09-11 13:55:40 -07002483 },
2484 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002485 &quot;createTime&quot;: &quot;A String&quot;, # Time this breakpoint was created by the server in seconds resolution.
2486 &quot;logMessageFormat&quot;: &quot;A String&quot;, # Only relevant when action is `LOG`. Defines the message to log when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002487 # the breakpoint hits. The message may include parameter placeholders `$0`,
2488 # `$1`, etc. These placeholders are replaced with the evaluated value
2489 # of the appropriate expression. Expressions not referenced in
2490 # `log_message_format` are not logged.
2491 #
2492 # Example: `Message received, id = $0, count = $1` with
2493 # `expressions` = `[ message.id, message.count ]`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002494 &quot;labels&quot;: { # A set of custom breakpoint properties, populated by the agent, to be
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002495 # displayed to the user.
Bu Sun Kim65020912020-05-20 12:08:20 -07002496 &quot;a_key&quot;: &quot;A String&quot;,
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -07002497 },
Takashi Matsuo06694102015-09-11 13:55:40 -07002498}
2499
Bu Sun Kim65020912020-05-20 12:08:20 -07002500 canaryOption: string, The canary option set by the user upon setting breakpoint.
Dan O'Mearadd494642020-05-01 07:42:23 -07002501 clientVersion: string, Required. The client version making the call.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002502Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
Takashi Matsuo06694102015-09-11 13:55:40 -07002503 x__xgafv: string, V1 error format.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002504 Allowed values
2505 1 - v1 error format
2506 2 - v2 error format
Takashi Matsuo06694102015-09-11 13:55:40 -07002507
2508Returns:
2509 An object of the form:
2510
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08002511 { # Response for setting a breakpoint.
Bu Sun Kim65020912020-05-20 12:08:20 -07002512 &quot;breakpoint&quot;: { # ------------------------------------------------------------------------------ # Breakpoint resource.
Dan O'Mearadd494642020-05-01 07:42:23 -07002513 # The field `id` is guaranteed to be set (in addition to the echoed fields).
2514 # ## Breakpoint (the resource)
2515 #
2516 # Represents the breakpoint specification, status and results.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07002517 &quot;expressions&quot;: [ # List of read-only expressions to evaluate at the breakpoint location.
2518 # The expressions are composed using expressions in the programming language
2519 # at the source location. If the breakpoint action is `LOG`, the evaluated
2520 # expressions are included in log statements.
2521 &quot;A String&quot;,
2522 ],
2523 &quot;evaluatedExpressions&quot;: [ # Values of evaluated expressions at breakpoint time.
2524 # The evaluated expressions appear in exactly the same order they
2525 # are listed in the `expressions` field.
2526 # The `name` field holds the original expression text, the `value` or
2527 # `members` field holds the result of the evaluated expression.
2528 # If the expression cannot be evaluated, the `status` inside the `Variable`
2529 # will indicate an error and contain the error text.
2530 { # Represents a variable or an argument possibly of a compound object type.
2531 # Note how the following variables are represented:
2532 #
2533 # 1) A simple variable:
2534 #
2535 # int x = 5
2536 #
2537 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
2538 #
2539 # 2) A compound object:
2540 #
2541 # struct T {
2542 # int m1;
2543 # int m2;
2544 # };
2545 # T x = { 3, 7 };
2546 #
2547 # { // Captured variable
2548 # name: &quot;x&quot;,
2549 # type: &quot;T&quot;,
2550 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2551 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2552 # }
2553 #
2554 # 3) A pointer where the pointee was captured:
2555 #
2556 # T x = { 3, 7 };
2557 # T* p = &amp;x;
2558 #
2559 # { // Captured variable
2560 # name: &quot;p&quot;,
2561 # type: &quot;T*&quot;,
2562 # value: &quot;0x00500500&quot;,
2563 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2564 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2565 # }
2566 #
2567 # 4) A pointer where the pointee was not captured:
2568 #
2569 # T* p = new T;
2570 #
2571 # { // Captured variable
2572 # name: &quot;p&quot;,
2573 # type: &quot;T*&quot;,
2574 # value: &quot;0x00400400&quot;
2575 # status { is_error: true, description { format: &quot;unavailable&quot; } }
2576 # }
2577 #
2578 # The status should describe the reason for the missing value,
2579 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
2580 #
2581 # Note that a null pointer should not have members.
2582 #
2583 # 5) An unnamed value:
2584 #
2585 # int* p = new int(7);
2586 #
2587 # { // Captured variable
2588 # name: &quot;p&quot;,
2589 # value: &quot;0x00500500&quot;,
2590 # type: &quot;int*&quot;,
2591 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
2592 #
2593 # 6) An unnamed pointer where the pointee was not captured:
2594 #
2595 # int* p = new int(7);
2596 # int** pp = &amp;p;
2597 #
2598 # { // Captured variable
2599 # name: &quot;pp&quot;,
2600 # value: &quot;0x00500500&quot;,
2601 # type: &quot;int**&quot;,
2602 # members {
2603 # value: &quot;0x00400400&quot;,
2604 # type: &quot;int*&quot;
2605 # status {
2606 # is_error: true,
2607 # description: { format: &quot;unavailable&quot; } }
2608 # }
2609 # }
2610 # }
2611 #
2612 # To optimize computation, memory and network traffic, variables that
2613 # repeat in the output multiple times can be stored once in a shared
2614 # variable table and be referenced using the `var_table_index` field. The
2615 # variables stored in the shared table are nameless and are essentially
2616 # a partition of the complete variable. To reconstruct the complete
2617 # variable, merge the referencing variable with the referenced variable.
2618 #
2619 # When using the shared variable table, the following variables:
2620 #
2621 # T x = { 3, 7 };
2622 # T* p = &amp;x;
2623 # T&amp; r = x;
2624 #
2625 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
2626 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
2627 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
2628 #
2629 # { // Shared variable table entry #3:
2630 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2631 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2632 # }
2633 #
2634 # Note that the pointer address is stored with the referencing variable
2635 # and not with the referenced variable. This allows the referenced variable
2636 # to be shared between pointers and references.
2637 #
2638 # The type field is optional. The debugger agent may or may not support it.
2639 &quot;members&quot;: [ # Members contained or pointed to by the variable.
2640 # Object with schema name: Variable
2641 ],
2642 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
2643 # unset. A status of a single variable only applies to that variable or
2644 # expression. The rest of breakpoint data still remains valid. Variables
2645 # might be reported in error state even when breakpoint is not in final
2646 # state.
2647 #
2648 # The message may refer to variable name with `refers_to` set to
2649 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2650 # In either case variable value and members will be unset.
2651 #
2652 # Example of error message applied to name: `Invalid expression syntax`.
2653 #
2654 # Example of information message applied to value: `Not captured`.
2655 #
2656 # Examples of error message applied to value:
2657 #
2658 # * `Malformed string`,
2659 # * `Field f not found in class C`
2660 # * `Null pointer dereference`
2661 # The message can indicate an error or informational status, and refer to
2662 # specific parts of the containing object.
2663 # For example, the `Breakpoint.status` field can indicate an error referring
2664 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
2665 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
2666 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
2667 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
2668 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2669 # character.
2670 #
2671 # Examples:
2672 #
2673 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
2674 # is loaded. Again, $0 is very important.`
2675 # * `Please pay $$10 to use $0 instead of $1.`
2676 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
2677 &quot;A String&quot;,
2678 ],
2679 },
2680 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
2681 },
2682 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
2683 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
2684 # `var_table_index`, `type` goes next to `value`. The interpretation of
2685 # a type is agent specific. It is recommended to include the dynamic type
2686 # rather than a static type of an object.
2687 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
2688 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
2689 # one variable can reference the same variable in the table. The
2690 # `var_table_index` field is an index into `variable_table` in Breakpoint.
2691 },
2692 ],
2693 &quot;isFinalState&quot;: True or False, # When true, indicates that this is a final result and the
2694 # breakpoint state will not change from here on.
2695 &quot;stackFrames&quot;: [ # The stack at breakpoint time, where stack_frames[0] represents the most
2696 # recently entered function.
2697 { # Represents a stack frame context.
2698 &quot;locals&quot;: [ # Set of local variables at the stack frame location.
2699 # Note that this might not be populated for all stack frames.
2700 { # Represents a variable or an argument possibly of a compound object type.
2701 # Note how the following variables are represented:
2702 #
2703 # 1) A simple variable:
2704 #
2705 # int x = 5
2706 #
2707 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
2708 #
2709 # 2) A compound object:
2710 #
2711 # struct T {
2712 # int m1;
2713 # int m2;
2714 # };
2715 # T x = { 3, 7 };
2716 #
2717 # { // Captured variable
2718 # name: &quot;x&quot;,
2719 # type: &quot;T&quot;,
2720 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2721 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2722 # }
2723 #
2724 # 3) A pointer where the pointee was captured:
2725 #
2726 # T x = { 3, 7 };
2727 # T* p = &amp;x;
2728 #
2729 # { // Captured variable
2730 # name: &quot;p&quot;,
2731 # type: &quot;T*&quot;,
2732 # value: &quot;0x00500500&quot;,
2733 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2734 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2735 # }
2736 #
2737 # 4) A pointer where the pointee was not captured:
2738 #
2739 # T* p = new T;
2740 #
2741 # { // Captured variable
2742 # name: &quot;p&quot;,
2743 # type: &quot;T*&quot;,
2744 # value: &quot;0x00400400&quot;
2745 # status { is_error: true, description { format: &quot;unavailable&quot; } }
2746 # }
2747 #
2748 # The status should describe the reason for the missing value,
2749 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
2750 #
2751 # Note that a null pointer should not have members.
2752 #
2753 # 5) An unnamed value:
2754 #
2755 # int* p = new int(7);
2756 #
2757 # { // Captured variable
2758 # name: &quot;p&quot;,
2759 # value: &quot;0x00500500&quot;,
2760 # type: &quot;int*&quot;,
2761 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
2762 #
2763 # 6) An unnamed pointer where the pointee was not captured:
2764 #
2765 # int* p = new int(7);
2766 # int** pp = &amp;p;
2767 #
2768 # { // Captured variable
2769 # name: &quot;pp&quot;,
2770 # value: &quot;0x00500500&quot;,
2771 # type: &quot;int**&quot;,
2772 # members {
2773 # value: &quot;0x00400400&quot;,
2774 # type: &quot;int*&quot;
2775 # status {
2776 # is_error: true,
2777 # description: { format: &quot;unavailable&quot; } }
2778 # }
2779 # }
2780 # }
2781 #
2782 # To optimize computation, memory and network traffic, variables that
2783 # repeat in the output multiple times can be stored once in a shared
2784 # variable table and be referenced using the `var_table_index` field. The
2785 # variables stored in the shared table are nameless and are essentially
2786 # a partition of the complete variable. To reconstruct the complete
2787 # variable, merge the referencing variable with the referenced variable.
2788 #
2789 # When using the shared variable table, the following variables:
2790 #
2791 # T x = { 3, 7 };
2792 # T* p = &amp;x;
2793 # T&amp; r = x;
2794 #
2795 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
2796 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
2797 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
2798 #
2799 # { // Shared variable table entry #3:
2800 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2801 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2802 # }
2803 #
2804 # Note that the pointer address is stored with the referencing variable
2805 # and not with the referenced variable. This allows the referenced variable
2806 # to be shared between pointers and references.
2807 #
2808 # The type field is optional. The debugger agent may or may not support it.
2809 &quot;members&quot;: [ # Members contained or pointed to by the variable.
2810 # Object with schema name: Variable
2811 ],
2812 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
2813 # unset. A status of a single variable only applies to that variable or
2814 # expression. The rest of breakpoint data still remains valid. Variables
2815 # might be reported in error state even when breakpoint is not in final
2816 # state.
2817 #
2818 # The message may refer to variable name with `refers_to` set to
2819 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2820 # In either case variable value and members will be unset.
2821 #
2822 # Example of error message applied to name: `Invalid expression syntax`.
2823 #
2824 # Example of information message applied to value: `Not captured`.
2825 #
2826 # Examples of error message applied to value:
2827 #
2828 # * `Malformed string`,
2829 # * `Field f not found in class C`
2830 # * `Null pointer dereference`
2831 # The message can indicate an error or informational status, and refer to
2832 # specific parts of the containing object.
2833 # For example, the `Breakpoint.status` field can indicate an error referring
2834 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
2835 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
2836 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
2837 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
2838 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2839 # character.
2840 #
2841 # Examples:
2842 #
2843 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
2844 # is loaded. Again, $0 is very important.`
2845 # * `Please pay $$10 to use $0 instead of $1.`
2846 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
2847 &quot;A String&quot;,
2848 ],
2849 },
2850 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
2851 },
2852 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
2853 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
2854 # `var_table_index`, `type` goes next to `value`. The interpretation of
2855 # a type is agent specific. It is recommended to include the dynamic type
2856 # rather than a static type of an object.
2857 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
2858 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
2859 # one variable can reference the same variable in the table. The
2860 # `var_table_index` field is an index into `variable_table` in Breakpoint.
2861 },
2862 ],
2863 &quot;location&quot;: { # Represents a location in the source code. # Source location of the call site.
2864 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
2865 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
2866 # Agents that do not support setting breakpoints on specific columns ignore
2867 # this field.
2868 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
2869 },
2870 &quot;function&quot;: &quot;A String&quot;, # Demangled function name at the call site.
2871 &quot;arguments&quot;: [ # Set of arguments passed to this function.
2872 # Note that this might not be populated for all stack frames.
2873 { # Represents a variable or an argument possibly of a compound object type.
2874 # Note how the following variables are represented:
2875 #
2876 # 1) A simple variable:
2877 #
2878 # int x = 5
2879 #
2880 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
2881 #
2882 # 2) A compound object:
2883 #
2884 # struct T {
2885 # int m1;
2886 # int m2;
2887 # };
2888 # T x = { 3, 7 };
2889 #
2890 # { // Captured variable
2891 # name: &quot;x&quot;,
2892 # type: &quot;T&quot;,
2893 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2894 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2895 # }
2896 #
2897 # 3) A pointer where the pointee was captured:
2898 #
2899 # T x = { 3, 7 };
2900 # T* p = &amp;x;
2901 #
2902 # { // Captured variable
2903 # name: &quot;p&quot;,
2904 # type: &quot;T*&quot;,
2905 # value: &quot;0x00500500&quot;,
2906 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2907 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2908 # }
2909 #
2910 # 4) A pointer where the pointee was not captured:
2911 #
2912 # T* p = new T;
2913 #
2914 # { // Captured variable
2915 # name: &quot;p&quot;,
2916 # type: &quot;T*&quot;,
2917 # value: &quot;0x00400400&quot;
2918 # status { is_error: true, description { format: &quot;unavailable&quot; } }
2919 # }
2920 #
2921 # The status should describe the reason for the missing value,
2922 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
2923 #
2924 # Note that a null pointer should not have members.
2925 #
2926 # 5) An unnamed value:
2927 #
2928 # int* p = new int(7);
2929 #
2930 # { // Captured variable
2931 # name: &quot;p&quot;,
2932 # value: &quot;0x00500500&quot;,
2933 # type: &quot;int*&quot;,
2934 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
2935 #
2936 # 6) An unnamed pointer where the pointee was not captured:
2937 #
2938 # int* p = new int(7);
2939 # int** pp = &amp;p;
2940 #
2941 # { // Captured variable
2942 # name: &quot;pp&quot;,
2943 # value: &quot;0x00500500&quot;,
2944 # type: &quot;int**&quot;,
2945 # members {
2946 # value: &quot;0x00400400&quot;,
2947 # type: &quot;int*&quot;
2948 # status {
2949 # is_error: true,
2950 # description: { format: &quot;unavailable&quot; } }
2951 # }
2952 # }
2953 # }
2954 #
2955 # To optimize computation, memory and network traffic, variables that
2956 # repeat in the output multiple times can be stored once in a shared
2957 # variable table and be referenced using the `var_table_index` field. The
2958 # variables stored in the shared table are nameless and are essentially
2959 # a partition of the complete variable. To reconstruct the complete
2960 # variable, merge the referencing variable with the referenced variable.
2961 #
2962 # When using the shared variable table, the following variables:
2963 #
2964 # T x = { 3, 7 };
2965 # T* p = &amp;x;
2966 # T&amp; r = x;
2967 #
2968 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
2969 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
2970 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
2971 #
2972 # { // Shared variable table entry #3:
2973 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2974 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2975 # }
2976 #
2977 # Note that the pointer address is stored with the referencing variable
2978 # and not with the referenced variable. This allows the referenced variable
2979 # to be shared between pointers and references.
2980 #
2981 # The type field is optional. The debugger agent may or may not support it.
2982 &quot;members&quot;: [ # Members contained or pointed to by the variable.
2983 # Object with schema name: Variable
2984 ],
2985 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
2986 # unset. A status of a single variable only applies to that variable or
2987 # expression. The rest of breakpoint data still remains valid. Variables
2988 # might be reported in error state even when breakpoint is not in final
2989 # state.
2990 #
2991 # The message may refer to variable name with `refers_to` set to
2992 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2993 # In either case variable value and members will be unset.
2994 #
2995 # Example of error message applied to name: `Invalid expression syntax`.
2996 #
2997 # Example of information message applied to value: `Not captured`.
2998 #
2999 # Examples of error message applied to value:
3000 #
3001 # * `Malformed string`,
3002 # * `Field f not found in class C`
3003 # * `Null pointer dereference`
3004 # The message can indicate an error or informational status, and refer to
3005 # specific parts of the containing object.
3006 # For example, the `Breakpoint.status` field can indicate an error referring
3007 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
3008 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
3009 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
3010 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
3011 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
3012 # character.
3013 #
3014 # Examples:
3015 #
3016 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
3017 # is loaded. Again, $0 is very important.`
3018 # * `Please pay $$10 to use $0 instead of $1.`
3019 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
3020 &quot;A String&quot;,
3021 ],
3022 },
3023 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
3024 },
3025 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
3026 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
3027 # `var_table_index`, `type` goes next to `value`. The interpretation of
3028 # a type is agent specific. It is recommended to include the dynamic type
3029 # rather than a static type of an object.
3030 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
3031 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
3032 # one variable can reference the same variable in the table. The
3033 # `var_table_index` field is an index into `variable_table` in Breakpoint.
3034 },
3035 ],
3036 },
3037 ],
3038 &quot;condition&quot;: &quot;A String&quot;, # Condition that triggers the breakpoint.
3039 # The condition is a compound boolean expression composed using expressions
3040 # in a programming language at the source location.
Bu Sun Kim65020912020-05-20 12:08:20 -07003041 &quot;canaryExpireTime&quot;: &quot;A String&quot;, # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
3042 # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
3043 &quot;status&quot;: { # Represents a contextual status message. # Breakpoint status.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003044 #
3045 # The status includes an error flag and a human readable message.
3046 # This field is usually unset. The message can be either
3047 # informational or an error message. Regardless, clients should always
3048 # display the text message back to the user.
3049 #
3050 # Error status indicates complete failure of the breakpoint.
3051 #
3052 # Example (non-final state): `Still loading symbols...`
3053 #
3054 # Examples (final state):
3055 #
3056 # * `Invalid line number` referring to location
3057 # * `Field f not found in class C` referring to condition
3058 # The message can indicate an error or informational status, and refer to
3059 # specific parts of the containing object.
3060 # For example, the `Breakpoint.status` field can indicate an error referring
3061 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003062 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
3063 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
Bu Sun Kim65020912020-05-20 12:08:20 -07003064 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003065 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
3066 # character.
3067 #
3068 # Examples:
3069 #
Bu Sun Kim65020912020-05-20 12:08:20 -07003070 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003071 # is loaded. Again, $0 is very important.`
3072 # * `Please pay $$10 to use $0 instead of $1.`
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003073 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
3074 &quot;A String&quot;,
3075 ],
Takashi Matsuo06694102015-09-11 13:55:40 -07003076 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003077 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07003078 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003079 &quot;state&quot;: &quot;A String&quot;, # The current state of the breakpoint.
3080 &quot;userEmail&quot;: &quot;A String&quot;, # E-mail address of the user that created this breakpoint
3081 &quot;action&quot;: &quot;A String&quot;, # Action that the agent should perform when the code at the
3082 # breakpoint location is hit.
3083 &quot;logLevel&quot;: &quot;A String&quot;, # Indicates the severity of the log. Only relevant when action is `LOG`.
3084 &quot;id&quot;: &quot;A String&quot;, # Breakpoint identifier, unique in the scope of the debuggee.
3085 &quot;location&quot;: { # Represents a location in the source code. # Breakpoint source location.
3086 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
3087 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
3088 # Agents that do not support setting breakpoints on specific columns ignore
3089 # this field.
3090 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
3091 },
3092 &quot;finalTime&quot;: &quot;A String&quot;, # Time this breakpoint was finalized as seen by the server in seconds
3093 # resolution.
3094 &quot;variableTable&quot;: [ # The `variable_table` exists to aid with computation, memory and network
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003095 # traffic optimization. It enables storing a variable once and reference
3096 # it from multiple variables, including variables stored in the
3097 # `variable_table` itself.
3098 # For example, the same `this` object, which may appear at many levels of
3099 # the stack, can have all of its data stored once in this table. The
3100 # stack frame variables then would hold only a reference to it.
3101 #
3102 # The variable `var_table_index` field is an index into this repeated field.
3103 # The stored objects are nameless and get their name from the referencing
3104 # variable. The effective variable is a merge of the referencing variable
3105 # and the referenced variable.
3106 { # Represents a variable or an argument possibly of a compound object type.
3107 # Note how the following variables are represented:
3108 #
3109 # 1) A simple variable:
3110 #
3111 # int x = 5
3112 #
Bu Sun Kim65020912020-05-20 12:08:20 -07003113 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003114 #
3115 # 2) A compound object:
3116 #
3117 # struct T {
3118 # int m1;
3119 # int m2;
3120 # };
3121 # T x = { 3, 7 };
3122 #
3123 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07003124 # name: &quot;x&quot;,
3125 # type: &quot;T&quot;,
3126 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
3127 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003128 # }
3129 #
3130 # 3) A pointer where the pointee was captured:
3131 #
3132 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07003133 # T* p = &amp;x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003134 #
3135 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07003136 # name: &quot;p&quot;,
3137 # type: &quot;T*&quot;,
3138 # value: &quot;0x00500500&quot;,
3139 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
3140 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003141 # }
3142 #
3143 # 4) A pointer where the pointee was not captured:
3144 #
3145 # T* p = new T;
3146 #
3147 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07003148 # name: &quot;p&quot;,
3149 # type: &quot;T*&quot;,
3150 # value: &quot;0x00400400&quot;
3151 # status { is_error: true, description { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003152 # }
3153 #
3154 # The status should describe the reason for the missing value,
Dan O'Mearadd494642020-05-01 07:42:23 -07003155 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003156 #
3157 # Note that a null pointer should not have members.
3158 #
3159 # 5) An unnamed value:
3160 #
3161 # int* p = new int(7);
3162 #
3163 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07003164 # name: &quot;p&quot;,
3165 # value: &quot;0x00500500&quot;,
3166 # type: &quot;int*&quot;,
3167 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003168 #
3169 # 6) An unnamed pointer where the pointee was not captured:
3170 #
3171 # int* p = new int(7);
Dan O'Mearadd494642020-05-01 07:42:23 -07003172 # int** pp = &amp;p;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003173 #
3174 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07003175 # name: &quot;pp&quot;,
3176 # value: &quot;0x00500500&quot;,
3177 # type: &quot;int**&quot;,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003178 # members {
Bu Sun Kim65020912020-05-20 12:08:20 -07003179 # value: &quot;0x00400400&quot;,
3180 # type: &quot;int*&quot;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003181 # status {
3182 # is_error: true,
Bu Sun Kim65020912020-05-20 12:08:20 -07003183 # description: { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003184 # }
3185 # }
3186 # }
3187 #
3188 # To optimize computation, memory and network traffic, variables that
3189 # repeat in the output multiple times can be stored once in a shared
3190 # variable table and be referenced using the `var_table_index` field. The
3191 # variables stored in the shared table are nameless and are essentially
3192 # a partition of the complete variable. To reconstruct the complete
3193 # variable, merge the referencing variable with the referenced variable.
3194 #
3195 # When using the shared variable table, the following variables:
3196 #
3197 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07003198 # T* p = &amp;x;
3199 # T&amp; r = x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003200 #
Bu Sun Kim65020912020-05-20 12:08:20 -07003201 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
3202 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
3203 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003204 #
3205 # { // Shared variable table entry #3:
Bu Sun Kim65020912020-05-20 12:08:20 -07003206 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
3207 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003208 # }
3209 #
3210 # Note that the pointer address is stored with the referencing variable
3211 # and not with the referenced variable. This allows the referenced variable
3212 # to be shared between pointers and references.
3213 #
3214 # The type field is optional. The debugger agent may or may not support it.
Bu Sun Kim65020912020-05-20 12:08:20 -07003215 &quot;members&quot;: [ # Members contained or pointed to by the variable.
3216 # Object with schema name: Variable
3217 ],
3218 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003219 # unset. A status of a single variable only applies to that variable or
3220 # expression. The rest of breakpoint data still remains valid. Variables
3221 # might be reported in error state even when breakpoint is not in final
3222 # state.
3223 #
3224 # The message may refer to variable name with `refers_to` set to
3225 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
3226 # In either case variable value and members will be unset.
3227 #
3228 # Example of error message applied to name: `Invalid expression syntax`.
3229 #
3230 # Example of information message applied to value: `Not captured`.
3231 #
3232 # Examples of error message applied to value:
3233 #
3234 # * `Malformed string`,
3235 # * `Field f not found in class C`
3236 # * `Null pointer dereference`
3237 # The message can indicate an error or informational status, and refer to
3238 # specific parts of the containing object.
3239 # For example, the `Breakpoint.status` field can indicate an error referring
3240 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003241 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
3242 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
Bu Sun Kim65020912020-05-20 12:08:20 -07003243 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003244 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
3245 # character.
3246 #
3247 # Examples:
3248 #
Bu Sun Kim65020912020-05-20 12:08:20 -07003249 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003250 # is loaded. Again, $0 is very important.`
3251 # * `Please pay $$10 to use $0 instead of $1.`
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003252 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
3253 &quot;A String&quot;,
3254 ],
Takashi Matsuo06694102015-09-11 13:55:40 -07003255 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003256 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07003257 },
Bu Sun Kim65020912020-05-20 12:08:20 -07003258 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
3259 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003260 # `var_table_index`, `type` goes next to `value`. The interpretation of
3261 # a type is agent specific. It is recommended to include the dynamic type
3262 # rather than a static type of an object.
Bu Sun Kim4ed7d3f2020-05-27 12:20:54 -07003263 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
Bu Sun Kim65020912020-05-20 12:08:20 -07003264 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
3265 # one variable can reference the same variable in the table. The
3266 # `var_table_index` field is an index into `variable_table` in Breakpoint.
Takashi Matsuo06694102015-09-11 13:55:40 -07003267 },
3268 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07003269 &quot;createTime&quot;: &quot;A String&quot;, # Time this breakpoint was created by the server in seconds resolution.
3270 &quot;logMessageFormat&quot;: &quot;A String&quot;, # Only relevant when action is `LOG`. Defines the message to log when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07003271 # the breakpoint hits. The message may include parameter placeholders `$0`,
3272 # `$1`, etc. These placeholders are replaced with the evaluated value
3273 # of the appropriate expression. Expressions not referenced in
3274 # `log_message_format` are not logged.
3275 #
3276 # Example: `Message received, id = $0, count = $1` with
3277 # `expressions` = `[ message.id, message.count ]`.
Bu Sun Kim65020912020-05-20 12:08:20 -07003278 &quot;labels&quot;: { # A set of custom breakpoint properties, populated by the agent, to be
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003279 # displayed to the user.
Bu Sun Kim65020912020-05-20 12:08:20 -07003280 &quot;a_key&quot;: &quot;A String&quot;,
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -07003281 },
Takashi Matsuo06694102015-09-11 13:55:40 -07003282 },
3283 }</pre>
3284</div>
3285
3286</body></html>