blob: 081f52da6596cc7018e6b06ef4f9a1b560f55404 [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
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -070075<h1><a href="clouddebugger_v2.html">Stackdriver 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">
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -070084 <code><a href="#list">list(debuggeeId, includeAllUsers=None, includeInactive=None, x__xgafv=None, clientVersion=None, stripResults=None, action_value=None, waitToken=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">
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -070087 <code><a href="#set">set(debuggeeId, body, 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:
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -080095 debuggeeId: string, ID of the debuggee whose breakpoint to delete. (required)
96 breakpointId: string, ID of the breakpoint to delete. (required)
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -040097 clientVersion: string, The client version making the call.
98Following: `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:
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800124 debuggeeId: string, ID of the debuggee whose breakpoint to get. (required)
125 breakpointId: string, ID of the breakpoint to get. (required)
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400126 clientVersion: string, The client version making the call.
127Following: `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.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400137 "breakpoint": { # Represents the breakpoint specification, status and results. # Complete breakpoint state.
138 # The fields `id` and `location` are guaranteed to be set.
139 "status": { # Represents a contextual status message. # Breakpoint status.
140 #
141 # The status includes an error flag and a human readable message.
142 # This field is usually unset. The message can be either
143 # informational or an error message. Regardless, clients should always
144 # display the text message back to the user.
145 #
146 # Error status indicates complete failure of the breakpoint.
147 #
148 # Example (non-final state): `Still loading symbols...`
149 #
150 # Examples (final state):
151 #
152 # * `Invalid line number` referring to location
153 # * `Field f not found in class C` referring to condition
154 # The message can indicate an error or informational status, and refer to
155 # specific parts of the containing object.
156 # For example, the `Breakpoint.status` field can indicate an error referring
157 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Takashi Matsuo06694102015-09-11 13:55:40 -0700158 "isError": True or False, # Distinguishes errors from informational messages.
159 "refersTo": "A String", # Reference to which the message applies.
160 "description": { # Represents a message with parameters. # Status message text.
161 "parameters": [ # Optional parameters to be embedded into the message.
162 "A String",
163 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400164 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
165 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
166 # character.
167 #
168 # Examples:
169 #
170 # * `Failed to load '$0' which helps debug $1 the first time it
171 # is loaded. Again, $0 is very important.`
172 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -0700173 },
174 },
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400175 "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
176 # traffic optimization. It enables storing a variable once and reference
177 # it from multiple variables, including variables stored in the
178 # `variable_table` itself.
179 # For example, the same `this` object, which may appear at many levels of
180 # the stack, can have all of its data stored once in this table. The
181 # stack frame variables then would hold only a reference to it.
182 #
183 # The variable `var_table_index` field is an index into this repeated field.
184 # The stored objects are nameless and get their name from the referencing
185 # variable. The effective variable is a merge of the referencing variable
186 # and the referenced variable.
187 { # Represents a variable or an argument possibly of a compound object type.
188 # Note how the following variables are represented:
189 #
190 # 1) A simple variable:
191 #
192 # int x = 5
193 #
194 # { name: "x", value: "5", type: "int" } // Captured variable
195 #
196 # 2) A compound object:
197 #
198 # struct T {
199 # int m1;
200 # int m2;
201 # };
202 # T x = { 3, 7 };
203 #
204 # { // Captured variable
205 # name: "x",
206 # type: "T",
207 # members { name: "m1", value: "3", type: "int" },
208 # members { name: "m2", value: "7", type: "int" }
209 # }
210 #
211 # 3) A pointer where the pointee was captured:
212 #
213 # T x = { 3, 7 };
214 # T* p = &x;
215 #
216 # { // Captured variable
217 # name: "p",
218 # type: "T*",
219 # value: "0x00500500",
220 # members { name: "m1", value: "3", type: "int" },
221 # members { name: "m2", value: "7", type: "int" }
222 # }
223 #
224 # 4) A pointer where the pointee was not captured:
225 #
226 # T* p = new T;
227 #
228 # { // Captured variable
229 # name: "p",
230 # type: "T*",
231 # value: "0x00400400"
232 # status { is_error: true, description { format: "unavailable" } }
233 # }
234 #
235 # The status should describe the reason for the missing value,
236 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
237 #
238 # Note that a null pointer should not have members.
239 #
240 # 5) An unnamed value:
241 #
242 # int* p = new int(7);
243 #
244 # { // Captured variable
245 # name: "p",
246 # value: "0x00500500",
247 # type: "int*",
248 # members { value: "7", type: "int" } }
249 #
250 # 6) An unnamed pointer where the pointee was not captured:
251 #
252 # int* p = new int(7);
253 # int** pp = &p;
254 #
255 # { // Captured variable
256 # name: "pp",
257 # value: "0x00500500",
258 # type: "int**",
259 # members {
260 # value: "0x00400400",
261 # type: "int*"
262 # status {
263 # is_error: true,
264 # description: { format: "unavailable" } }
265 # }
266 # }
267 # }
268 #
269 # To optimize computation, memory and network traffic, variables that
270 # repeat in the output multiple times can be stored once in a shared
271 # variable table and be referenced using the `var_table_index` field. The
272 # variables stored in the shared table are nameless and are essentially
273 # a partition of the complete variable. To reconstruct the complete
274 # variable, merge the referencing variable with the referenced variable.
275 #
276 # When using the shared variable table, the following variables:
277 #
278 # T x = { 3, 7 };
279 # T* p = &x;
280 # T& r = x;
281 #
282 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
283 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
284 # { name: "r", type="T&", var_table_index: 3 }
285 #
286 # { // Shared variable table entry #3:
287 # members { name: "m1", value: "3", type: "int" },
288 # members { name: "m2", value: "7", type: "int" }
289 # }
290 #
291 # Note that the pointer address is stored with the referencing variable
292 # and not with the referenced variable. This allows the referenced variable
293 # to be shared between pointers and references.
294 #
295 # The type field is optional. The debugger agent may or may not support it.
296 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
297 # unset. A status of a single variable only applies to that variable or
298 # expression. The rest of breakpoint data still remains valid. Variables
299 # might be reported in error state even when breakpoint is not in final
300 # state.
301 #
302 # The message may refer to variable name with `refers_to` set to
303 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
304 # In either case variable value and members will be unset.
305 #
306 # Example of error message applied to name: `Invalid expression syntax`.
307 #
308 # Example of information message applied to value: `Not captured`.
309 #
310 # Examples of error message applied to value:
311 #
312 # * `Malformed string`,
313 # * `Field f not found in class C`
314 # * `Null pointer dereference`
315 # The message can indicate an error or informational status, and refer to
316 # specific parts of the containing object.
317 # For example, the `Breakpoint.status` field can indicate an error referring
318 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Takashi Matsuo06694102015-09-11 13:55:40 -0700319 "isError": True or False, # Distinguishes errors from informational messages.
320 "refersTo": "A String", # Reference to which the message applies.
321 "description": { # Represents a message with parameters. # Status message text.
322 "parameters": [ # Optional parameters to be embedded into the message.
323 "A String",
324 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400325 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
326 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
327 # character.
328 #
329 # Examples:
330 #
331 # * `Failed to load '$0' which helps debug $1 the first time it
332 # is loaded. Again, $0 is very important.`
333 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -0700334 },
335 },
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800336 "name": "A String", # Name of the variable, if any.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400337 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
338 # one variable can reference the same variable in the table. The
339 # `var_table_index` field is an index into `variable_table` in Breakpoint.
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800340 "value": "A String", # Simple value of the variable.
341 "members": [ # Members contained or pointed to by the variable.
342 # Object with schema name: Variable
343 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400344 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
345 # `var_table_index`, `type` goes next to `value`. The interpretation of
346 # a type is agent specific. It is recommended to include the dynamic type
347 # rather than a static type of an object.
Takashi Matsuo06694102015-09-11 13:55:40 -0700348 },
349 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -0400350 "userEmail": "A String", # E-mail address of the user that created this breakpoint
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800351 "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400352 "labels": { # A set of custom breakpoint properties, populated by the agent, to be
353 # displayed to the user.
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -0700354 "a_key": "A String",
355 },
Takashi Matsuo06694102015-09-11 13:55:40 -0700356 "stackFrames": [ # The stack at breakpoint time.
357 { # Represents a stack frame context.
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800358 "function": "A String", # Demangled function name at the call site.
Thomas Coffee2f245372017-03-27 10:39:26 -0700359 "arguments": [ # Set of arguments passed to this function.
360 # Note that this might not be populated for all stack frames.
361 { # Represents a variable or an argument possibly of a compound object type.
362 # Note how the following variables are represented:
363 #
364 # 1) A simple variable:
365 #
366 # int x = 5
367 #
368 # { name: "x", value: "5", type: "int" } // Captured variable
369 #
370 # 2) A compound object:
371 #
372 # struct T {
373 # int m1;
374 # int m2;
375 # };
376 # T x = { 3, 7 };
377 #
378 # { // Captured variable
379 # name: "x",
380 # type: "T",
381 # members { name: "m1", value: "3", type: "int" },
382 # members { name: "m2", value: "7", type: "int" }
383 # }
384 #
385 # 3) A pointer where the pointee was captured:
386 #
387 # T x = { 3, 7 };
388 # T* p = &x;
389 #
390 # { // Captured variable
391 # name: "p",
392 # type: "T*",
393 # value: "0x00500500",
394 # members { name: "m1", value: "3", type: "int" },
395 # members { name: "m2", value: "7", type: "int" }
396 # }
397 #
398 # 4) A pointer where the pointee was not captured:
399 #
400 # T* p = new T;
401 #
402 # { // Captured variable
403 # name: "p",
404 # type: "T*",
405 # value: "0x00400400"
406 # status { is_error: true, description { format: "unavailable" } }
407 # }
408 #
409 # The status should describe the reason for the missing value,
410 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
411 #
412 # Note that a null pointer should not have members.
413 #
414 # 5) An unnamed value:
415 #
416 # int* p = new int(7);
417 #
418 # { // Captured variable
419 # name: "p",
420 # value: "0x00500500",
421 # type: "int*",
422 # members { value: "7", type: "int" } }
423 #
424 # 6) An unnamed pointer where the pointee was not captured:
425 #
426 # int* p = new int(7);
427 # int** pp = &p;
428 #
429 # { // Captured variable
430 # name: "pp",
431 # value: "0x00500500",
432 # type: "int**",
433 # members {
434 # value: "0x00400400",
435 # type: "int*"
436 # status {
437 # is_error: true,
438 # description: { format: "unavailable" } }
439 # }
440 # }
441 # }
442 #
443 # To optimize computation, memory and network traffic, variables that
444 # repeat in the output multiple times can be stored once in a shared
445 # variable table and be referenced using the `var_table_index` field. The
446 # variables stored in the shared table are nameless and are essentially
447 # a partition of the complete variable. To reconstruct the complete
448 # variable, merge the referencing variable with the referenced variable.
449 #
450 # When using the shared variable table, the following variables:
451 #
452 # T x = { 3, 7 };
453 # T* p = &x;
454 # T& r = x;
455 #
456 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
457 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
458 # { name: "r", type="T&", var_table_index: 3 }
459 #
460 # { // Shared variable table entry #3:
461 # members { name: "m1", value: "3", type: "int" },
462 # members { name: "m2", value: "7", type: "int" }
463 # }
464 #
465 # Note that the pointer address is stored with the referencing variable
466 # and not with the referenced variable. This allows the referenced variable
467 # to be shared between pointers and references.
468 #
469 # The type field is optional. The debugger agent may or may not support it.
470 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
471 # unset. A status of a single variable only applies to that variable or
472 # expression. The rest of breakpoint data still remains valid. Variables
473 # might be reported in error state even when breakpoint is not in final
474 # state.
475 #
476 # The message may refer to variable name with `refers_to` set to
477 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
478 # In either case variable value and members will be unset.
479 #
480 # Example of error message applied to name: `Invalid expression syntax`.
481 #
482 # Example of information message applied to value: `Not captured`.
483 #
484 # Examples of error message applied to value:
485 #
486 # * `Malformed string`,
487 # * `Field f not found in class C`
488 # * `Null pointer dereference`
489 # The message can indicate an error or informational status, and refer to
490 # specific parts of the containing object.
491 # For example, the `Breakpoint.status` field can indicate an error referring
492 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
493 "isError": True or False, # Distinguishes errors from informational messages.
494 "refersTo": "A String", # Reference to which the message applies.
495 "description": { # Represents a message with parameters. # Status message text.
496 "parameters": [ # Optional parameters to be embedded into the message.
497 "A String",
498 ],
499 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
500 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
501 # character.
502 #
503 # Examples:
504 #
505 # * `Failed to load '$0' which helps debug $1 the first time it
506 # is loaded. Again, $0 is very important.`
507 # * `Please pay $$10 to use $0 instead of $1.`
508 },
509 },
510 "name": "A String", # Name of the variable, if any.
511 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
512 # one variable can reference the same variable in the table. The
513 # `var_table_index` field is an index into `variable_table` in Breakpoint.
514 "value": "A String", # Simple value of the variable.
515 "members": [ # Members contained or pointed to by the variable.
516 # Object with schema name: Variable
517 ],
518 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
519 # `var_table_index`, `type` goes next to `value`. The interpretation of
520 # a type is agent specific. It is recommended to include the dynamic type
521 # rather than a static type of an object.
522 },
523 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -0400524 "locals": [ # Set of local variables at the stack frame location.
525 # Note that this might not be populated for all stack frames.
526 { # Represents a variable or an argument possibly of a compound object type.
527 # Note how the following variables are represented:
528 #
529 # 1) A simple variable:
530 #
531 # int x = 5
532 #
533 # { name: "x", value: "5", type: "int" } // Captured variable
534 #
535 # 2) A compound object:
536 #
537 # struct T {
538 # int m1;
539 # int m2;
540 # };
541 # T x = { 3, 7 };
542 #
543 # { // Captured variable
544 # name: "x",
545 # type: "T",
546 # members { name: "m1", value: "3", type: "int" },
547 # members { name: "m2", value: "7", type: "int" }
548 # }
549 #
550 # 3) A pointer where the pointee was captured:
551 #
552 # T x = { 3, 7 };
553 # T* p = &x;
554 #
555 # { // Captured variable
556 # name: "p",
557 # type: "T*",
558 # value: "0x00500500",
559 # members { name: "m1", value: "3", type: "int" },
560 # members { name: "m2", value: "7", type: "int" }
561 # }
562 #
563 # 4) A pointer where the pointee was not captured:
564 #
565 # T* p = new T;
566 #
567 # { // Captured variable
568 # name: "p",
569 # type: "T*",
570 # value: "0x00400400"
571 # status { is_error: true, description { format: "unavailable" } }
572 # }
573 #
574 # The status should describe the reason for the missing value,
575 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
576 #
577 # Note that a null pointer should not have members.
578 #
579 # 5) An unnamed value:
580 #
581 # int* p = new int(7);
582 #
583 # { // Captured variable
584 # name: "p",
585 # value: "0x00500500",
586 # type: "int*",
587 # members { value: "7", type: "int" } }
588 #
589 # 6) An unnamed pointer where the pointee was not captured:
590 #
591 # int* p = new int(7);
592 # int** pp = &p;
593 #
594 # { // Captured variable
595 # name: "pp",
596 # value: "0x00500500",
597 # type: "int**",
598 # members {
599 # value: "0x00400400",
600 # type: "int*"
601 # status {
602 # is_error: true,
603 # description: { format: "unavailable" } }
604 # }
605 # }
606 # }
607 #
608 # To optimize computation, memory and network traffic, variables that
609 # repeat in the output multiple times can be stored once in a shared
610 # variable table and be referenced using the `var_table_index` field. The
611 # variables stored in the shared table are nameless and are essentially
612 # a partition of the complete variable. To reconstruct the complete
613 # variable, merge the referencing variable with the referenced variable.
614 #
615 # When using the shared variable table, the following variables:
616 #
617 # T x = { 3, 7 };
618 # T* p = &x;
619 # T& r = x;
620 #
621 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
622 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
623 # { name: "r", type="T&", var_table_index: 3 }
624 #
625 # { // Shared variable table entry #3:
626 # members { name: "m1", value: "3", type: "int" },
627 # members { name: "m2", value: "7", type: "int" }
628 # }
629 #
630 # Note that the pointer address is stored with the referencing variable
631 # and not with the referenced variable. This allows the referenced variable
632 # to be shared between pointers and references.
633 #
634 # The type field is optional. The debugger agent may or may not support it.
635 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
636 # unset. A status of a single variable only applies to that variable or
637 # expression. The rest of breakpoint data still remains valid. Variables
638 # might be reported in error state even when breakpoint is not in final
639 # state.
640 #
641 # The message may refer to variable name with `refers_to` set to
642 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
643 # In either case variable value and members will be unset.
644 #
645 # Example of error message applied to name: `Invalid expression syntax`.
646 #
647 # Example of information message applied to value: `Not captured`.
648 #
649 # Examples of error message applied to value:
650 #
651 # * `Malformed string`,
652 # * `Field f not found in class C`
653 # * `Null pointer dereference`
654 # The message can indicate an error or informational status, and refer to
655 # specific parts of the containing object.
656 # For example, the `Breakpoint.status` field can indicate an error referring
657 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
658 "isError": True or False, # Distinguishes errors from informational messages.
659 "refersTo": "A String", # Reference to which the message applies.
660 "description": { # Represents a message with parameters. # Status message text.
661 "parameters": [ # Optional parameters to be embedded into the message.
662 "A String",
663 ],
664 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
665 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
666 # character.
667 #
668 # Examples:
669 #
670 # * `Failed to load '$0' which helps debug $1 the first time it
671 # is loaded. Again, $0 is very important.`
672 # * `Please pay $$10 to use $0 instead of $1.`
673 },
674 },
675 "name": "A String", # Name of the variable, if any.
676 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
677 # one variable can reference the same variable in the table. The
678 # `var_table_index` field is an index into `variable_table` in Breakpoint.
679 "value": "A String", # Simple value of the variable.
680 "members": [ # Members contained or pointed to by the variable.
681 # Object with schema name: Variable
682 ],
683 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
684 # `var_table_index`, `type` goes next to `value`. The interpretation of
685 # a type is agent specific. It is recommended to include the dynamic type
686 # rather than a static type of an object.
687 },
688 ],
689 "location": { # Represents a location in the source code. # Source location of the call site.
690 "path": "A String", # Path to the source file within the source context of the target binary.
691 "line": 42, # Line inside the file. The first line in the file has the value `1`.
692 },
Takashi Matsuo06694102015-09-11 13:55:40 -0700693 },
694 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -0400695 "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400696 "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
697 # The expressions are composed using expressions in the programming language
698 # at the source location. If the breakpoint action is `LOG`, the evaluated
699 # expressions are included in log statements.
Takashi Matsuo06694102015-09-11 13:55:40 -0700700 "A String",
701 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -0400702 "location": { # Represents a location in the source code. # Breakpoint source location.
703 "path": "A String", # Path to the source file within the source context of the target binary.
704 "line": 42, # Line inside the file. The first line in the file has the value `1`.
705 },
706 "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
707 # resolution.
708 "action": "A String", # Action that the agent should perform when the code at the
709 # breakpoint location is hit.
710 "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
711 # the breakpoint hits. The message may include parameter placeholders `$0`,
712 # `$1`, etc. These placeholders are replaced with the evaluated value
713 # of the appropriate expression. Expressions not referenced in
714 # `log_message_format` are not logged.
715 #
716 # Example: `Message received, id = $0, count = $1` with
717 # `expressions` = `[ message.id, message.count ]`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400718 "isFinalState": True or False, # When true, indicates that this is a final result and the
719 # breakpoint state will not change from here on.
720 "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
721 # The evaluated expressions appear in exactly the same order they
722 # are listed in the `expressions` field.
723 # The `name` field holds the original expression text, the `value` or
724 # `members` field holds the result of the evaluated expression.
725 # If the expression cannot be evaluated, the `status` inside the `Variable`
726 # will indicate an error and contain the error text.
727 { # Represents a variable or an argument possibly of a compound object type.
728 # Note how the following variables are represented:
729 #
730 # 1) A simple variable:
731 #
732 # int x = 5
733 #
734 # { name: "x", value: "5", type: "int" } // Captured variable
735 #
736 # 2) A compound object:
737 #
738 # struct T {
739 # int m1;
740 # int m2;
741 # };
742 # T x = { 3, 7 };
743 #
744 # { // Captured variable
745 # name: "x",
746 # type: "T",
747 # members { name: "m1", value: "3", type: "int" },
748 # members { name: "m2", value: "7", type: "int" }
749 # }
750 #
751 # 3) A pointer where the pointee was captured:
752 #
753 # T x = { 3, 7 };
754 # T* p = &x;
755 #
756 # { // Captured variable
757 # name: "p",
758 # type: "T*",
759 # value: "0x00500500",
760 # members { name: "m1", value: "3", type: "int" },
761 # members { name: "m2", value: "7", type: "int" }
762 # }
763 #
764 # 4) A pointer where the pointee was not captured:
765 #
766 # T* p = new T;
767 #
768 # { // Captured variable
769 # name: "p",
770 # type: "T*",
771 # value: "0x00400400"
772 # status { is_error: true, description { format: "unavailable" } }
773 # }
774 #
775 # The status should describe the reason for the missing value,
776 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
777 #
778 # Note that a null pointer should not have members.
779 #
780 # 5) An unnamed value:
781 #
782 # int* p = new int(7);
783 #
784 # { // Captured variable
785 # name: "p",
786 # value: "0x00500500",
787 # type: "int*",
788 # members { value: "7", type: "int" } }
789 #
790 # 6) An unnamed pointer where the pointee was not captured:
791 #
792 # int* p = new int(7);
793 # int** pp = &p;
794 #
795 # { // Captured variable
796 # name: "pp",
797 # value: "0x00500500",
798 # type: "int**",
799 # members {
800 # value: "0x00400400",
801 # type: "int*"
802 # status {
803 # is_error: true,
804 # description: { format: "unavailable" } }
805 # }
806 # }
807 # }
808 #
809 # To optimize computation, memory and network traffic, variables that
810 # repeat in the output multiple times can be stored once in a shared
811 # variable table and be referenced using the `var_table_index` field. The
812 # variables stored in the shared table are nameless and are essentially
813 # a partition of the complete variable. To reconstruct the complete
814 # variable, merge the referencing variable with the referenced variable.
815 #
816 # When using the shared variable table, the following variables:
817 #
818 # T x = { 3, 7 };
819 # T* p = &x;
820 # T& r = x;
821 #
822 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
823 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
824 # { name: "r", type="T&", var_table_index: 3 }
825 #
826 # { // Shared variable table entry #3:
827 # members { name: "m1", value: "3", type: "int" },
828 # members { name: "m2", value: "7", type: "int" }
829 # }
830 #
831 # Note that the pointer address is stored with the referencing variable
832 # and not with the referenced variable. This allows the referenced variable
833 # to be shared between pointers and references.
834 #
835 # The type field is optional. The debugger agent may or may not support it.
836 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
837 # unset. A status of a single variable only applies to that variable or
838 # expression. The rest of breakpoint data still remains valid. Variables
839 # might be reported in error state even when breakpoint is not in final
840 # state.
841 #
842 # The message may refer to variable name with `refers_to` set to
843 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
844 # In either case variable value and members will be unset.
845 #
846 # Example of error message applied to name: `Invalid expression syntax`.
847 #
848 # Example of information message applied to value: `Not captured`.
849 #
850 # Examples of error message applied to value:
851 #
852 # * `Malformed string`,
853 # * `Field f not found in class C`
854 # * `Null pointer dereference`
855 # The message can indicate an error or informational status, and refer to
856 # specific parts of the containing object.
857 # For example, the `Breakpoint.status` field can indicate an error referring
858 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Takashi Matsuo06694102015-09-11 13:55:40 -0700859 "isError": True or False, # Distinguishes errors from informational messages.
860 "refersTo": "A String", # Reference to which the message applies.
861 "description": { # Represents a message with parameters. # Status message text.
862 "parameters": [ # Optional parameters to be embedded into the message.
863 "A String",
864 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400865 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
866 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
867 # character.
868 #
869 # Examples:
870 #
871 # * `Failed to load '$0' which helps debug $1 the first time it
872 # is loaded. Again, $0 is very important.`
873 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -0700874 },
875 },
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800876 "name": "A String", # Name of the variable, if any.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400877 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
878 # one variable can reference the same variable in the table. The
879 # `var_table_index` field is an index into `variable_table` in Breakpoint.
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800880 "value": "A String", # Simple value of the variable.
881 "members": [ # Members contained or pointed to by the variable.
882 # Object with schema name: Variable
883 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400884 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
885 # `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.
Takashi Matsuo06694102015-09-11 13:55:40 -0700888 },
889 ],
890 "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400891 "condition": "A String", # Condition that triggers the breakpoint.
892 # The condition is a compound boolean expression composed using expressions
893 # in a programming language at the source location.
Takashi Matsuo06694102015-09-11 13:55:40 -0700894 },
895 }</pre>
896</div>
897
898<div class="method">
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -0700899 <code class="details" id="list">list(debuggeeId, includeAllUsers=None, includeInactive=None, x__xgafv=None, clientVersion=None, stripResults=None, action_value=None, waitToken=None)</code>
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800900 <pre>Lists all breakpoints for the debuggee.
Takashi Matsuo06694102015-09-11 13:55:40 -0700901
902Args:
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800903 debuggeeId: string, ID of the debuggee whose breakpoints to list. (required)
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400904 includeAllUsers: boolean, When set to `true`, the response includes the list of breakpoints set by
905any user. Otherwise, it includes only breakpoints set by the caller.
906 includeInactive: boolean, When set to `true`, the response includes active and inactive
907breakpoints. Otherwise, it includes only active breakpoints.
Takashi Matsuo06694102015-09-11 13:55:40 -0700908 x__xgafv: string, V1 error format.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400909 Allowed values
910 1 - v1 error format
911 2 - v2 error format
912 clientVersion: string, The client version making the call.
913Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
914 stripResults: boolean, This field is deprecated. The following fields are always stripped out of
915the result: `stack_frames`, `evaluated_expressions` and `variable_table`.
Takashi Matsuo06694102015-09-11 13:55:40 -0700916 action_value: string, Only breakpoints with the specified action will pass the filter.
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`.
Takashi Matsuo06694102015-09-11 13:55:40 -0700922
923Returns:
924 An object of the form:
925
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800926 { # Response for listing breakpoints.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400927 "nextWaitToken": "A String", # A wait token that can be used in the next call to `list` (REST) or
928 # `ListBreakpoints` (RPC) to block until the list of breakpoints has changes.
929 "breakpoints": [ # List of breakpoints matching the request.
930 # The fields `id` and `location` are guaranteed to be set on each breakpoint.
931 # The fields: `stack_frames`, `evaluated_expressions` and `variable_table`
932 # are cleared on each breakpoint regardless of it's status.
Takashi Matsuo06694102015-09-11 13:55:40 -0700933 { # Represents the breakpoint specification, status and results.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400934 "status": { # Represents a contextual status message. # Breakpoint status.
935 #
936 # The status includes an error flag and a human readable message.
937 # This field is usually unset. The message can be either
938 # informational or an error message. Regardless, clients should always
939 # display the text message back to the user.
940 #
941 # Error status indicates complete failure of the breakpoint.
942 #
943 # Example (non-final state): `Still loading symbols...`
944 #
945 # Examples (final state):
946 #
947 # * `Invalid line number` referring to location
948 # * `Field f not found in class C` referring to condition
949 # The message can indicate an error or informational status, and refer to
950 # specific parts of the containing object.
951 # For example, the `Breakpoint.status` field can indicate an error referring
952 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Takashi Matsuo06694102015-09-11 13:55:40 -0700953 "isError": True or False, # Distinguishes errors from informational messages.
954 "refersTo": "A String", # Reference to which the message applies.
955 "description": { # Represents a message with parameters. # Status message text.
956 "parameters": [ # Optional parameters to be embedded into the message.
957 "A String",
958 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400959 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
960 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
961 # character.
962 #
963 # Examples:
964 #
965 # * `Failed to load '$0' which helps debug $1 the first time it
966 # is loaded. Again, $0 is very important.`
967 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -0700968 },
969 },
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400970 "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
971 # traffic optimization. It enables storing a variable once and reference
972 # it from multiple variables, including variables stored in the
973 # `variable_table` itself.
974 # For example, the same `this` object, which may appear at many levels of
975 # the stack, can have all of its data stored once in this table. The
976 # stack frame variables then would hold only a reference to it.
977 #
978 # The variable `var_table_index` field is an index into this repeated field.
979 # The stored objects are nameless and get their name from the referencing
980 # variable. The effective variable is a merge of the referencing variable
981 # and the referenced variable.
982 { # Represents a variable or an argument possibly of a compound object type.
983 # Note how the following variables are represented:
984 #
985 # 1) A simple variable:
986 #
987 # int x = 5
988 #
989 # { name: "x", value: "5", type: "int" } // Captured variable
990 #
991 # 2) A compound object:
992 #
993 # struct T {
994 # int m1;
995 # int m2;
996 # };
997 # T x = { 3, 7 };
998 #
999 # { // Captured variable
1000 # name: "x",
1001 # type: "T",
1002 # members { name: "m1", value: "3", type: "int" },
1003 # members { name: "m2", value: "7", type: "int" }
1004 # }
1005 #
1006 # 3) A pointer where the pointee was captured:
1007 #
1008 # T x = { 3, 7 };
1009 # T* p = &x;
1010 #
1011 # { // Captured variable
1012 # name: "p",
1013 # type: "T*",
1014 # value: "0x00500500",
1015 # members { name: "m1", value: "3", type: "int" },
1016 # members { name: "m2", value: "7", type: "int" }
1017 # }
1018 #
1019 # 4) A pointer where the pointee was not captured:
1020 #
1021 # T* p = new T;
1022 #
1023 # { // Captured variable
1024 # name: "p",
1025 # type: "T*",
1026 # value: "0x00400400"
1027 # status { is_error: true, description { format: "unavailable" } }
1028 # }
1029 #
1030 # The status should describe the reason for the missing value,
1031 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
1032 #
1033 # Note that a null pointer should not have members.
1034 #
1035 # 5) An unnamed value:
1036 #
1037 # int* p = new int(7);
1038 #
1039 # { // Captured variable
1040 # name: "p",
1041 # value: "0x00500500",
1042 # type: "int*",
1043 # members { value: "7", type: "int" } }
1044 #
1045 # 6) An unnamed pointer where the pointee was not captured:
1046 #
1047 # int* p = new int(7);
1048 # int** pp = &p;
1049 #
1050 # { // Captured variable
1051 # name: "pp",
1052 # value: "0x00500500",
1053 # type: "int**",
1054 # members {
1055 # value: "0x00400400",
1056 # type: "int*"
1057 # status {
1058 # is_error: true,
1059 # description: { format: "unavailable" } }
1060 # }
1061 # }
1062 # }
1063 #
1064 # To optimize computation, memory and network traffic, variables that
1065 # repeat in the output multiple times can be stored once in a shared
1066 # variable table and be referenced using the `var_table_index` field. The
1067 # variables stored in the shared table are nameless and are essentially
1068 # a partition of the complete variable. To reconstruct the complete
1069 # variable, merge the referencing variable with the referenced variable.
1070 #
1071 # When using the shared variable table, the following variables:
1072 #
1073 # T x = { 3, 7 };
1074 # T* p = &x;
1075 # T& r = x;
1076 #
1077 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
1078 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
1079 # { name: "r", type="T&", var_table_index: 3 }
1080 #
1081 # { // Shared variable table entry #3:
1082 # members { name: "m1", value: "3", type: "int" },
1083 # members { name: "m2", value: "7", type: "int" }
1084 # }
1085 #
1086 # Note that the pointer address is stored with the referencing variable
1087 # and not with the referenced variable. This allows the referenced variable
1088 # to be shared between pointers and references.
1089 #
1090 # The type field is optional. The debugger agent may or may not support it.
1091 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
1092 # unset. A status of a single variable only applies to that variable or
1093 # expression. The rest of breakpoint data still remains valid. Variables
1094 # might be reported in error state even when breakpoint is not in final
1095 # state.
1096 #
1097 # The message may refer to variable name with `refers_to` set to
1098 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1099 # In either case variable value and members will be unset.
1100 #
1101 # Example of error message applied to name: `Invalid expression syntax`.
1102 #
1103 # Example of information message applied to value: `Not captured`.
1104 #
1105 # Examples of error message applied to value:
1106 #
1107 # * `Malformed string`,
1108 # * `Field f not found in class C`
1109 # * `Null pointer dereference`
1110 # The message can indicate an error or informational status, and refer to
1111 # specific parts of the containing object.
1112 # For example, the `Breakpoint.status` field can indicate an error referring
1113 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Takashi Matsuo06694102015-09-11 13:55:40 -07001114 "isError": True or False, # Distinguishes errors from informational messages.
1115 "refersTo": "A String", # Reference to which the message applies.
1116 "description": { # Represents a message with parameters. # Status message text.
1117 "parameters": [ # Optional parameters to be embedded into the message.
1118 "A String",
1119 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001120 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
1121 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1122 # character.
1123 #
1124 # Examples:
1125 #
1126 # * `Failed to load '$0' which helps debug $1 the first time it
1127 # is loaded. Again, $0 is very important.`
1128 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07001129 },
1130 },
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08001131 "name": "A String", # Name of the variable, if any.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001132 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
1133 # one variable can reference the same variable in the table. The
1134 # `var_table_index` field is an index into `variable_table` in Breakpoint.
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08001135 "value": "A String", # Simple value of the variable.
1136 "members": [ # Members contained or pointed to by the variable.
1137 # Object with schema name: Variable
1138 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001139 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
1140 # `var_table_index`, `type` goes next to `value`. The interpretation of
1141 # a type is agent specific. It is recommended to include the dynamic type
1142 # rather than a static type of an object.
Takashi Matsuo06694102015-09-11 13:55:40 -07001143 },
1144 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -04001145 "userEmail": "A String", # E-mail address of the user that created this breakpoint
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08001146 "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001147 "labels": { # A set of custom breakpoint properties, populated by the agent, to be
1148 # displayed to the user.
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -07001149 "a_key": "A String",
1150 },
Takashi Matsuo06694102015-09-11 13:55:40 -07001151 "stackFrames": [ # The stack at breakpoint time.
1152 { # Represents a stack frame context.
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08001153 "function": "A String", # Demangled function name at the call site.
Thomas Coffee2f245372017-03-27 10:39:26 -07001154 "arguments": [ # Set of arguments passed to this function.
1155 # Note that this might not be populated for all stack frames.
1156 { # Represents a variable or an argument possibly of a compound object type.
1157 # Note how the following variables are represented:
1158 #
1159 # 1) A simple variable:
1160 #
1161 # int x = 5
1162 #
1163 # { name: "x", value: "5", type: "int" } // Captured variable
1164 #
1165 # 2) A compound object:
1166 #
1167 # struct T {
1168 # int m1;
1169 # int m2;
1170 # };
1171 # T x = { 3, 7 };
1172 #
1173 # { // Captured variable
1174 # name: "x",
1175 # type: "T",
1176 # members { name: "m1", value: "3", type: "int" },
1177 # members { name: "m2", value: "7", type: "int" }
1178 # }
1179 #
1180 # 3) A pointer where the pointee was captured:
1181 #
1182 # T x = { 3, 7 };
1183 # T* p = &x;
1184 #
1185 # { // Captured variable
1186 # name: "p",
1187 # type: "T*",
1188 # value: "0x00500500",
1189 # members { name: "m1", value: "3", type: "int" },
1190 # members { name: "m2", value: "7", type: "int" }
1191 # }
1192 #
1193 # 4) A pointer where the pointee was not captured:
1194 #
1195 # T* p = new T;
1196 #
1197 # { // Captured variable
1198 # name: "p",
1199 # type: "T*",
1200 # value: "0x00400400"
1201 # status { is_error: true, description { format: "unavailable" } }
1202 # }
1203 #
1204 # The status should describe the reason for the missing value,
1205 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
1206 #
1207 # Note that a null pointer should not have members.
1208 #
1209 # 5) An unnamed value:
1210 #
1211 # int* p = new int(7);
1212 #
1213 # { // Captured variable
1214 # name: "p",
1215 # value: "0x00500500",
1216 # type: "int*",
1217 # members { value: "7", type: "int" } }
1218 #
1219 # 6) An unnamed pointer where the pointee was not captured:
1220 #
1221 # int* p = new int(7);
1222 # int** pp = &p;
1223 #
1224 # { // Captured variable
1225 # name: "pp",
1226 # value: "0x00500500",
1227 # type: "int**",
1228 # members {
1229 # value: "0x00400400",
1230 # type: "int*"
1231 # status {
1232 # is_error: true,
1233 # description: { format: "unavailable" } }
1234 # }
1235 # }
1236 # }
1237 #
1238 # To optimize computation, memory and network traffic, variables that
1239 # repeat in the output multiple times can be stored once in a shared
1240 # variable table and be referenced using the `var_table_index` field. The
1241 # variables stored in the shared table are nameless and are essentially
1242 # a partition of the complete variable. To reconstruct the complete
1243 # variable, merge the referencing variable with the referenced variable.
1244 #
1245 # When using the shared variable table, the following variables:
1246 #
1247 # T x = { 3, 7 };
1248 # T* p = &x;
1249 # T& r = x;
1250 #
1251 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
1252 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
1253 # { name: "r", type="T&", var_table_index: 3 }
1254 #
1255 # { // Shared variable table entry #3:
1256 # members { name: "m1", value: "3", type: "int" },
1257 # members { name: "m2", value: "7", type: "int" }
1258 # }
1259 #
1260 # Note that the pointer address is stored with the referencing variable
1261 # and not with the referenced variable. This allows the referenced variable
1262 # to be shared between pointers and references.
1263 #
1264 # The type field is optional. The debugger agent may or may not support it.
1265 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
1266 # unset. A status of a single variable only applies to that variable or
1267 # expression. The rest of breakpoint data still remains valid. Variables
1268 # might be reported in error state even when breakpoint is not in final
1269 # state.
1270 #
1271 # The message may refer to variable name with `refers_to` set to
1272 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1273 # In either case variable value and members will be unset.
1274 #
1275 # Example of error message applied to name: `Invalid expression syntax`.
1276 #
1277 # Example of information message applied to value: `Not captured`.
1278 #
1279 # Examples of error message applied to value:
1280 #
1281 # * `Malformed string`,
1282 # * `Field f not found in class C`
1283 # * `Null pointer dereference`
1284 # The message can indicate an error or informational status, and refer to
1285 # specific parts of the containing object.
1286 # For example, the `Breakpoint.status` field can indicate an error referring
1287 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
1288 "isError": True or False, # Distinguishes errors from informational messages.
1289 "refersTo": "A String", # Reference to which the message applies.
1290 "description": { # Represents a message with parameters. # Status message text.
1291 "parameters": [ # Optional parameters to be embedded into the message.
1292 "A String",
1293 ],
1294 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
1295 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1296 # character.
1297 #
1298 # Examples:
1299 #
1300 # * `Failed to load '$0' which helps debug $1 the first time it
1301 # is loaded. Again, $0 is very important.`
1302 # * `Please pay $$10 to use $0 instead of $1.`
1303 },
1304 },
1305 "name": "A String", # Name of the variable, if any.
1306 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
1307 # one variable can reference the same variable in the table. The
1308 # `var_table_index` field is an index into `variable_table` in Breakpoint.
1309 "value": "A String", # Simple value of the variable.
1310 "members": [ # Members contained or pointed to by the variable.
1311 # Object with schema name: Variable
1312 ],
1313 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
1314 # `var_table_index`, `type` goes next to `value`. The interpretation of
1315 # a type is agent specific. It is recommended to include the dynamic type
1316 # rather than a static type of an object.
1317 },
1318 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -04001319 "locals": [ # Set of local variables at the stack frame location.
1320 # Note that this might not be populated for all stack frames.
1321 { # Represents a variable or an argument possibly of a compound object type.
1322 # Note how the following variables are represented:
1323 #
1324 # 1) A simple variable:
1325 #
1326 # int x = 5
1327 #
1328 # { name: "x", value: "5", type: "int" } // Captured variable
1329 #
1330 # 2) A compound object:
1331 #
1332 # struct T {
1333 # int m1;
1334 # int m2;
1335 # };
1336 # T x = { 3, 7 };
1337 #
1338 # { // Captured variable
1339 # name: "x",
1340 # type: "T",
1341 # members { name: "m1", value: "3", type: "int" },
1342 # members { name: "m2", value: "7", type: "int" }
1343 # }
1344 #
1345 # 3) A pointer where the pointee was captured:
1346 #
1347 # T x = { 3, 7 };
1348 # T* p = &x;
1349 #
1350 # { // Captured variable
1351 # name: "p",
1352 # type: "T*",
1353 # value: "0x00500500",
1354 # members { name: "m1", value: "3", type: "int" },
1355 # members { name: "m2", value: "7", type: "int" }
1356 # }
1357 #
1358 # 4) A pointer where the pointee was not captured:
1359 #
1360 # T* p = new T;
1361 #
1362 # { // Captured variable
1363 # name: "p",
1364 # type: "T*",
1365 # value: "0x00400400"
1366 # status { is_error: true, description { format: "unavailable" } }
1367 # }
1368 #
1369 # The status should describe the reason for the missing value,
1370 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
1371 #
1372 # Note that a null pointer should not have members.
1373 #
1374 # 5) An unnamed value:
1375 #
1376 # int* p = new int(7);
1377 #
1378 # { // Captured variable
1379 # name: "p",
1380 # value: "0x00500500",
1381 # type: "int*",
1382 # members { value: "7", type: "int" } }
1383 #
1384 # 6) An unnamed pointer where the pointee was not captured:
1385 #
1386 # int* p = new int(7);
1387 # int** pp = &p;
1388 #
1389 # { // Captured variable
1390 # name: "pp",
1391 # value: "0x00500500",
1392 # type: "int**",
1393 # members {
1394 # value: "0x00400400",
1395 # type: "int*"
1396 # status {
1397 # is_error: true,
1398 # description: { format: "unavailable" } }
1399 # }
1400 # }
1401 # }
1402 #
1403 # To optimize computation, memory and network traffic, variables that
1404 # repeat in the output multiple times can be stored once in a shared
1405 # variable table and be referenced using the `var_table_index` field. The
1406 # variables stored in the shared table are nameless and are essentially
1407 # a partition of the complete variable. To reconstruct the complete
1408 # variable, merge the referencing variable with the referenced variable.
1409 #
1410 # When using the shared variable table, the following variables:
1411 #
1412 # T x = { 3, 7 };
1413 # T* p = &x;
1414 # T& r = x;
1415 #
1416 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
1417 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
1418 # { name: "r", type="T&", var_table_index: 3 }
1419 #
1420 # { // Shared variable table entry #3:
1421 # members { name: "m1", value: "3", type: "int" },
1422 # members { name: "m2", value: "7", type: "int" }
1423 # }
1424 #
1425 # Note that the pointer address is stored with the referencing variable
1426 # and not with the referenced variable. This allows the referenced variable
1427 # to be shared between pointers and references.
1428 #
1429 # The type field is optional. The debugger agent may or may not support it.
1430 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
1431 # unset. A status of a single variable only applies to that variable or
1432 # expression. The rest of breakpoint data still remains valid. Variables
1433 # might be reported in error state even when breakpoint is not in final
1434 # state.
1435 #
1436 # The message may refer to variable name with `refers_to` set to
1437 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1438 # In either case variable value and members will be unset.
1439 #
1440 # Example of error message applied to name: `Invalid expression syntax`.
1441 #
1442 # Example of information message applied to value: `Not captured`.
1443 #
1444 # Examples of error message applied to value:
1445 #
1446 # * `Malformed string`,
1447 # * `Field f not found in class C`
1448 # * `Null pointer dereference`
1449 # The message can indicate an error or informational status, and refer to
1450 # specific parts of the containing object.
1451 # For example, the `Breakpoint.status` field can indicate an error referring
1452 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
1453 "isError": True or False, # Distinguishes errors from informational messages.
1454 "refersTo": "A String", # Reference to which the message applies.
1455 "description": { # Represents a message with parameters. # Status message text.
1456 "parameters": [ # Optional parameters to be embedded into the message.
1457 "A String",
1458 ],
1459 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
1460 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1461 # character.
1462 #
1463 # Examples:
1464 #
1465 # * `Failed to load '$0' which helps debug $1 the first time it
1466 # is loaded. Again, $0 is very important.`
1467 # * `Please pay $$10 to use $0 instead of $1.`
1468 },
1469 },
1470 "name": "A String", # Name of the variable, if any.
1471 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
1472 # one variable can reference the same variable in the table. The
1473 # `var_table_index` field is an index into `variable_table` in Breakpoint.
1474 "value": "A String", # Simple value of the variable.
1475 "members": [ # Members contained or pointed to by the variable.
1476 # Object with schema name: Variable
1477 ],
1478 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
1479 # `var_table_index`, `type` goes next to `value`. The interpretation of
1480 # a type is agent specific. It is recommended to include the dynamic type
1481 # rather than a static type of an object.
1482 },
1483 ],
1484 "location": { # Represents a location in the source code. # Source location of the call site.
1485 "path": "A String", # Path to the source file within the source context of the target binary.
1486 "line": 42, # Line inside the file. The first line in the file has the value `1`.
1487 },
Takashi Matsuo06694102015-09-11 13:55:40 -07001488 },
1489 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -04001490 "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001491 "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
1492 # The expressions are composed using expressions in the programming language
1493 # at the source location. If the breakpoint action is `LOG`, the evaluated
1494 # expressions are included in log statements.
Takashi Matsuo06694102015-09-11 13:55:40 -07001495 "A String",
1496 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -04001497 "location": { # Represents a location in the source code. # Breakpoint source location.
1498 "path": "A String", # Path to the source file within the source context of the target binary.
1499 "line": 42, # Line inside the file. The first line in the file has the value `1`.
1500 },
1501 "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
1502 # resolution.
1503 "action": "A String", # Action that the agent should perform when the code at the
1504 # breakpoint location is hit.
1505 "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
1506 # the breakpoint hits. The message may include parameter placeholders `$0`,
1507 # `$1`, etc. These placeholders are replaced with the evaluated value
1508 # of the appropriate expression. Expressions not referenced in
1509 # `log_message_format` are not logged.
1510 #
1511 # Example: `Message received, id = $0, count = $1` with
1512 # `expressions` = `[ message.id, message.count ]`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001513 "isFinalState": True or False, # When true, indicates that this is a final result and the
1514 # breakpoint state will not change from here on.
1515 "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
1516 # The evaluated expressions appear in exactly the same order they
1517 # are listed in the `expressions` field.
1518 # The `name` field holds the original expression text, the `value` or
1519 # `members` field holds the result of the evaluated expression.
1520 # If the expression cannot be evaluated, the `status` inside the `Variable`
1521 # will indicate an error and contain the error text.
1522 { # Represents a variable or an argument possibly of a compound object type.
1523 # Note how the following variables are represented:
1524 #
1525 # 1) A simple variable:
1526 #
1527 # int x = 5
1528 #
1529 # { name: "x", value: "5", type: "int" } // Captured variable
1530 #
1531 # 2) A compound object:
1532 #
1533 # struct T {
1534 # int m1;
1535 # int m2;
1536 # };
1537 # T x = { 3, 7 };
1538 #
1539 # { // Captured variable
1540 # name: "x",
1541 # type: "T",
1542 # members { name: "m1", value: "3", type: "int" },
1543 # members { name: "m2", value: "7", type: "int" }
1544 # }
1545 #
1546 # 3) A pointer where the pointee was captured:
1547 #
1548 # T x = { 3, 7 };
1549 # T* p = &x;
1550 #
1551 # { // Captured variable
1552 # name: "p",
1553 # type: "T*",
1554 # value: "0x00500500",
1555 # members { name: "m1", value: "3", type: "int" },
1556 # members { name: "m2", value: "7", type: "int" }
1557 # }
1558 #
1559 # 4) A pointer where the pointee was not captured:
1560 #
1561 # T* p = new T;
1562 #
1563 # { // Captured variable
1564 # name: "p",
1565 # type: "T*",
1566 # value: "0x00400400"
1567 # status { is_error: true, description { format: "unavailable" } }
1568 # }
1569 #
1570 # The status should describe the reason for the missing value,
1571 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
1572 #
1573 # Note that a null pointer should not have members.
1574 #
1575 # 5) An unnamed value:
1576 #
1577 # int* p = new int(7);
1578 #
1579 # { // Captured variable
1580 # name: "p",
1581 # value: "0x00500500",
1582 # type: "int*",
1583 # members { value: "7", type: "int" } }
1584 #
1585 # 6) An unnamed pointer where the pointee was not captured:
1586 #
1587 # int* p = new int(7);
1588 # int** pp = &p;
1589 #
1590 # { // Captured variable
1591 # name: "pp",
1592 # value: "0x00500500",
1593 # type: "int**",
1594 # members {
1595 # value: "0x00400400",
1596 # type: "int*"
1597 # status {
1598 # is_error: true,
1599 # description: { format: "unavailable" } }
1600 # }
1601 # }
1602 # }
1603 #
1604 # To optimize computation, memory and network traffic, variables that
1605 # repeat in the output multiple times can be stored once in a shared
1606 # variable table and be referenced using the `var_table_index` field. The
1607 # variables stored in the shared table are nameless and are essentially
1608 # a partition of the complete variable. To reconstruct the complete
1609 # variable, merge the referencing variable with the referenced variable.
1610 #
1611 # When using the shared variable table, the following variables:
1612 #
1613 # T x = { 3, 7 };
1614 # T* p = &x;
1615 # T& r = x;
1616 #
1617 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
1618 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
1619 # { name: "r", type="T&", var_table_index: 3 }
1620 #
1621 # { // Shared variable table entry #3:
1622 # members { name: "m1", value: "3", type: "int" },
1623 # members { name: "m2", value: "7", type: "int" }
1624 # }
1625 #
1626 # Note that the pointer address is stored with the referencing variable
1627 # and not with the referenced variable. This allows the referenced variable
1628 # to be shared between pointers and references.
1629 #
1630 # The type field is optional. The debugger agent may or may not support it.
1631 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
1632 # unset. A status of a single variable only applies to that variable or
1633 # expression. The rest of breakpoint data still remains valid. Variables
1634 # might be reported in error state even when breakpoint is not in final
1635 # state.
1636 #
1637 # The message may refer to variable name with `refers_to` set to
1638 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1639 # In either case variable value and members will be unset.
1640 #
1641 # Example of error message applied to name: `Invalid expression syntax`.
1642 #
1643 # Example of information message applied to value: `Not captured`.
1644 #
1645 # Examples of error message applied to value:
1646 #
1647 # * `Malformed string`,
1648 # * `Field f not found in class C`
1649 # * `Null pointer dereference`
1650 # The message can indicate an error or informational status, and refer to
1651 # specific parts of the containing object.
1652 # For example, the `Breakpoint.status` field can indicate an error referring
1653 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Takashi Matsuo06694102015-09-11 13:55:40 -07001654 "isError": True or False, # Distinguishes errors from informational messages.
1655 "refersTo": "A String", # Reference to which the message applies.
1656 "description": { # Represents a message with parameters. # Status message text.
1657 "parameters": [ # Optional parameters to be embedded into the message.
1658 "A String",
1659 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001660 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
1661 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1662 # character.
1663 #
1664 # Examples:
1665 #
1666 # * `Failed to load '$0' which helps debug $1 the first time it
1667 # is loaded. Again, $0 is very important.`
1668 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07001669 },
1670 },
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08001671 "name": "A String", # Name of the variable, if any.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001672 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
1673 # one variable can reference the same variable in the table. The
1674 # `var_table_index` field is an index into `variable_table` in Breakpoint.
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08001675 "value": "A String", # Simple value of the variable.
1676 "members": [ # Members contained or pointed to by the variable.
1677 # Object with schema name: Variable
1678 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001679 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
1680 # `var_table_index`, `type` goes next to `value`. The interpretation of
1681 # a type is agent specific. It is recommended to include the dynamic type
1682 # rather than a static type of an object.
Takashi Matsuo06694102015-09-11 13:55:40 -07001683 },
1684 ],
1685 "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001686 "condition": "A String", # Condition that triggers the breakpoint.
1687 # The condition is a compound boolean expression composed using expressions
1688 # in a programming language at the source location.
Takashi Matsuo06694102015-09-11 13:55:40 -07001689 },
1690 ],
1691 }</pre>
1692</div>
1693
1694<div class="method">
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -07001695 <code class="details" id="set">set(debuggeeId, body, clientVersion=None, x__xgafv=None)</code>
Takashi Matsuo06694102015-09-11 13:55:40 -07001696 <pre>Sets the breakpoint to the debuggee.
1697
1698Args:
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08001699 debuggeeId: string, ID of the debuggee where the breakpoint is to be set. (required)
Takashi Matsuo06694102015-09-11 13:55:40 -07001700 body: object, The request body. (required)
1701 The object takes the form of:
1702
1703{ # Represents the breakpoint specification, status and results.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001704 "status": { # Represents a contextual status message. # Breakpoint status.
1705 #
1706 # The status includes an error flag and a human readable message.
1707 # This field is usually unset. The message can be either
1708 # informational or an error message. Regardless, clients should always
1709 # display the text message back to the user.
1710 #
1711 # Error status indicates complete failure of the breakpoint.
1712 #
1713 # Example (non-final state): `Still loading symbols...`
1714 #
1715 # Examples (final state):
1716 #
1717 # * `Invalid line number` referring to location
1718 # * `Field f not found in class C` referring to condition
1719 # The message can indicate an error or informational status, and refer to
1720 # specific parts of the containing object.
1721 # For example, the `Breakpoint.status` field can indicate an error referring
1722 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Takashi Matsuo06694102015-09-11 13:55:40 -07001723 "isError": True or False, # Distinguishes errors from informational messages.
1724 "refersTo": "A String", # Reference to which the message applies.
1725 "description": { # Represents a message with parameters. # Status message text.
1726 "parameters": [ # Optional parameters to be embedded into the message.
1727 "A String",
1728 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001729 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
1730 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1731 # character.
1732 #
1733 # Examples:
1734 #
1735 # * `Failed to load '$0' which helps debug $1 the first time it
1736 # is loaded. Again, $0 is very important.`
1737 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07001738 },
1739 },
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001740 "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
1741 # traffic optimization. It enables storing a variable once and reference
1742 # it from multiple variables, including variables stored in the
1743 # `variable_table` itself.
1744 # For example, the same `this` object, which may appear at many levels of
1745 # the stack, can have all of its data stored once in this table. The
1746 # stack frame variables then would hold only a reference to it.
1747 #
1748 # The variable `var_table_index` field is an index into this repeated field.
1749 # The stored objects are nameless and get their name from the referencing
1750 # variable. The effective variable is a merge of the referencing variable
1751 # and the referenced variable.
1752 { # Represents a variable or an argument possibly of a compound object type.
1753 # Note how the following variables are represented:
1754 #
1755 # 1) A simple variable:
1756 #
1757 # int x = 5
1758 #
1759 # { name: "x", value: "5", type: "int" } // Captured variable
1760 #
1761 # 2) A compound object:
1762 #
1763 # struct T {
1764 # int m1;
1765 # int m2;
1766 # };
1767 # T x = { 3, 7 };
1768 #
1769 # { // Captured variable
1770 # name: "x",
1771 # type: "T",
1772 # members { name: "m1", value: "3", type: "int" },
1773 # members { name: "m2", value: "7", type: "int" }
1774 # }
1775 #
1776 # 3) A pointer where the pointee was captured:
1777 #
1778 # T x = { 3, 7 };
1779 # T* p = &x;
1780 #
1781 # { // Captured variable
1782 # name: "p",
1783 # type: "T*",
1784 # value: "0x00500500",
1785 # members { name: "m1", value: "3", type: "int" },
1786 # members { name: "m2", value: "7", type: "int" }
1787 # }
1788 #
1789 # 4) A pointer where the pointee was not captured:
1790 #
1791 # T* p = new T;
1792 #
1793 # { // Captured variable
1794 # name: "p",
1795 # type: "T*",
1796 # value: "0x00400400"
1797 # status { is_error: true, description { format: "unavailable" } }
1798 # }
1799 #
1800 # The status should describe the reason for the missing value,
1801 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
1802 #
1803 # Note that a null pointer should not have members.
1804 #
1805 # 5) An unnamed value:
1806 #
1807 # int* p = new int(7);
1808 #
1809 # { // Captured variable
1810 # name: "p",
1811 # value: "0x00500500",
1812 # type: "int*",
1813 # members { value: "7", type: "int" } }
1814 #
1815 # 6) An unnamed pointer where the pointee was not captured:
1816 #
1817 # int* p = new int(7);
1818 # int** pp = &p;
1819 #
1820 # { // Captured variable
1821 # name: "pp",
1822 # value: "0x00500500",
1823 # type: "int**",
1824 # members {
1825 # value: "0x00400400",
1826 # type: "int*"
1827 # status {
1828 # is_error: true,
1829 # description: { format: "unavailable" } }
1830 # }
1831 # }
1832 # }
1833 #
1834 # To optimize computation, memory and network traffic, variables that
1835 # repeat in the output multiple times can be stored once in a shared
1836 # variable table and be referenced using the `var_table_index` field. The
1837 # variables stored in the shared table are nameless and are essentially
1838 # a partition of the complete variable. To reconstruct the complete
1839 # variable, merge the referencing variable with the referenced variable.
1840 #
1841 # When using the shared variable table, the following variables:
1842 #
1843 # T x = { 3, 7 };
1844 # T* p = &x;
1845 # T& r = x;
1846 #
1847 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
1848 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
1849 # { name: "r", type="T&", var_table_index: 3 }
1850 #
1851 # { // Shared variable table entry #3:
1852 # members { name: "m1", value: "3", type: "int" },
1853 # members { name: "m2", value: "7", type: "int" }
1854 # }
1855 #
1856 # Note that the pointer address is stored with the referencing variable
1857 # and not with the referenced variable. This allows the referenced variable
1858 # to be shared between pointers and references.
1859 #
1860 # The type field is optional. The debugger agent may or may not support it.
1861 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
1862 # unset. A status of a single variable only applies to that variable or
1863 # expression. The rest of breakpoint data still remains valid. Variables
1864 # might be reported in error state even when breakpoint is not in final
1865 # state.
1866 #
1867 # The message may refer to variable name with `refers_to` set to
1868 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1869 # In either case variable value and members will be unset.
1870 #
1871 # Example of error message applied to name: `Invalid expression syntax`.
1872 #
1873 # Example of information message applied to value: `Not captured`.
1874 #
1875 # Examples of error message applied to value:
1876 #
1877 # * `Malformed string`,
1878 # * `Field f not found in class C`
1879 # * `Null pointer dereference`
1880 # The message can indicate an error or informational status, and refer to
1881 # specific parts of the containing object.
1882 # For example, the `Breakpoint.status` field can indicate an error referring
1883 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Takashi Matsuo06694102015-09-11 13:55:40 -07001884 "isError": True or False, # Distinguishes errors from informational messages.
1885 "refersTo": "A String", # Reference to which the message applies.
1886 "description": { # Represents a message with parameters. # Status message text.
1887 "parameters": [ # Optional parameters to be embedded into the message.
1888 "A String",
1889 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001890 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
1891 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1892 # character.
1893 #
1894 # Examples:
1895 #
1896 # * `Failed to load '$0' which helps debug $1 the first time it
1897 # is loaded. Again, $0 is very important.`
1898 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07001899 },
1900 },
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08001901 "name": "A String", # Name of the variable, if any.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001902 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
1903 # one variable can reference the same variable in the table. The
1904 # `var_table_index` field is an index into `variable_table` in Breakpoint.
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08001905 "value": "A String", # Simple value of the variable.
1906 "members": [ # Members contained or pointed to by the variable.
1907 # Object with schema name: Variable
1908 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001909 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
1910 # `var_table_index`, `type` goes next to `value`. The interpretation of
1911 # a type is agent specific. It is recommended to include the dynamic type
1912 # rather than a static type of an object.
Takashi Matsuo06694102015-09-11 13:55:40 -07001913 },
1914 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -04001915 "userEmail": "A String", # E-mail address of the user that created this breakpoint
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08001916 "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001917 "labels": { # A set of custom breakpoint properties, populated by the agent, to be
1918 # displayed to the user.
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -07001919 "a_key": "A String",
1920 },
Takashi Matsuo06694102015-09-11 13:55:40 -07001921 "stackFrames": [ # The stack at breakpoint time.
1922 { # Represents a stack frame context.
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08001923 "function": "A String", # Demangled function name at the call site.
Thomas Coffee2f245372017-03-27 10:39:26 -07001924 "arguments": [ # Set of arguments passed to this function.
1925 # Note that this might not be populated for all stack frames.
1926 { # Represents a variable or an argument possibly of a compound object type.
1927 # Note how the following variables are represented:
1928 #
1929 # 1) A simple variable:
1930 #
1931 # int x = 5
1932 #
1933 # { name: "x", value: "5", type: "int" } // Captured variable
1934 #
1935 # 2) A compound object:
1936 #
1937 # struct T {
1938 # int m1;
1939 # int m2;
1940 # };
1941 # T x = { 3, 7 };
1942 #
1943 # { // Captured variable
1944 # name: "x",
1945 # type: "T",
1946 # members { name: "m1", value: "3", type: "int" },
1947 # members { name: "m2", value: "7", type: "int" }
1948 # }
1949 #
1950 # 3) A pointer where the pointee was captured:
1951 #
1952 # T x = { 3, 7 };
1953 # T* p = &x;
1954 #
1955 # { // Captured variable
1956 # name: "p",
1957 # type: "T*",
1958 # value: "0x00500500",
1959 # members { name: "m1", value: "3", type: "int" },
1960 # members { name: "m2", value: "7", type: "int" }
1961 # }
1962 #
1963 # 4) A pointer where the pointee was not captured:
1964 #
1965 # T* p = new T;
1966 #
1967 # { // Captured variable
1968 # name: "p",
1969 # type: "T*",
1970 # value: "0x00400400"
1971 # status { is_error: true, description { format: "unavailable" } }
1972 # }
1973 #
1974 # The status should describe the reason for the missing value,
1975 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
1976 #
1977 # Note that a null pointer should not have members.
1978 #
1979 # 5) An unnamed value:
1980 #
1981 # int* p = new int(7);
1982 #
1983 # { // Captured variable
1984 # name: "p",
1985 # value: "0x00500500",
1986 # type: "int*",
1987 # members { value: "7", type: "int" } }
1988 #
1989 # 6) An unnamed pointer where the pointee was not captured:
1990 #
1991 # int* p = new int(7);
1992 # int** pp = &p;
1993 #
1994 # { // Captured variable
1995 # name: "pp",
1996 # value: "0x00500500",
1997 # type: "int**",
1998 # members {
1999 # value: "0x00400400",
2000 # type: "int*"
2001 # status {
2002 # is_error: true,
2003 # description: { format: "unavailable" } }
2004 # }
2005 # }
2006 # }
2007 #
2008 # To optimize computation, memory and network traffic, variables that
2009 # repeat in the output multiple times can be stored once in a shared
2010 # variable table and be referenced using the `var_table_index` field. The
2011 # variables stored in the shared table are nameless and are essentially
2012 # a partition of the complete variable. To reconstruct the complete
2013 # variable, merge the referencing variable with the referenced variable.
2014 #
2015 # When using the shared variable table, the following variables:
2016 #
2017 # T x = { 3, 7 };
2018 # T* p = &x;
2019 # T& r = x;
2020 #
2021 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
2022 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
2023 # { name: "r", type="T&", var_table_index: 3 }
2024 #
2025 # { // Shared variable table entry #3:
2026 # members { name: "m1", value: "3", type: "int" },
2027 # members { name: "m2", value: "7", type: "int" }
2028 # }
2029 #
2030 # Note that the pointer address is stored with the referencing variable
2031 # and not with the referenced variable. This allows the referenced variable
2032 # to be shared between pointers and references.
2033 #
2034 # The type field is optional. The debugger agent may or may not support it.
2035 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
2036 # unset. A status of a single variable only applies to that variable or
2037 # expression. The rest of breakpoint data still remains valid. Variables
2038 # might be reported in error state even when breakpoint is not in final
2039 # state.
2040 #
2041 # The message may refer to variable name with `refers_to` set to
2042 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2043 # In either case variable value and members will be unset.
2044 #
2045 # Example of error message applied to name: `Invalid expression syntax`.
2046 #
2047 # Example of information message applied to value: `Not captured`.
2048 #
2049 # Examples of error message applied to value:
2050 #
2051 # * `Malformed string`,
2052 # * `Field f not found in class C`
2053 # * `Null pointer dereference`
2054 # The message can indicate an error or informational status, and refer to
2055 # specific parts of the containing object.
2056 # For example, the `Breakpoint.status` field can indicate an error referring
2057 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
2058 "isError": True or False, # Distinguishes errors from informational messages.
2059 "refersTo": "A String", # Reference to which the message applies.
2060 "description": { # Represents a message with parameters. # Status message text.
2061 "parameters": [ # Optional parameters to be embedded into the message.
2062 "A String",
2063 ],
2064 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
2065 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2066 # character.
2067 #
2068 # Examples:
2069 #
2070 # * `Failed to load '$0' which helps debug $1 the first time it
2071 # is loaded. Again, $0 is very important.`
2072 # * `Please pay $$10 to use $0 instead of $1.`
2073 },
2074 },
2075 "name": "A String", # Name of the variable, if any.
2076 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
2077 # one variable can reference the same variable in the table. The
2078 # `var_table_index` field is an index into `variable_table` in Breakpoint.
2079 "value": "A String", # Simple value of the variable.
2080 "members": [ # Members contained or pointed to by the variable.
2081 # Object with schema name: Variable
2082 ],
2083 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
2084 # `var_table_index`, `type` goes next to `value`. The interpretation of
2085 # a type is agent specific. It is recommended to include the dynamic type
2086 # rather than a static type of an object.
2087 },
2088 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -04002089 "locals": [ # Set of local variables at the stack frame location.
2090 # Note that this might not be populated for all stack frames.
2091 { # Represents a variable or an argument possibly of a compound object type.
2092 # Note how the following variables are represented:
2093 #
2094 # 1) A simple variable:
2095 #
2096 # int x = 5
2097 #
2098 # { name: "x", value: "5", type: "int" } // Captured variable
2099 #
2100 # 2) A compound object:
2101 #
2102 # struct T {
2103 # int m1;
2104 # int m2;
2105 # };
2106 # T x = { 3, 7 };
2107 #
2108 # { // Captured variable
2109 # name: "x",
2110 # type: "T",
2111 # members { name: "m1", value: "3", type: "int" },
2112 # members { name: "m2", value: "7", type: "int" }
2113 # }
2114 #
2115 # 3) A pointer where the pointee was captured:
2116 #
2117 # T x = { 3, 7 };
2118 # T* p = &x;
2119 #
2120 # { // Captured variable
2121 # name: "p",
2122 # type: "T*",
2123 # value: "0x00500500",
2124 # members { name: "m1", value: "3", type: "int" },
2125 # members { name: "m2", value: "7", type: "int" }
2126 # }
2127 #
2128 # 4) A pointer where the pointee was not captured:
2129 #
2130 # T* p = new T;
2131 #
2132 # { // Captured variable
2133 # name: "p",
2134 # type: "T*",
2135 # value: "0x00400400"
2136 # status { is_error: true, description { format: "unavailable" } }
2137 # }
2138 #
2139 # The status should describe the reason for the missing value,
2140 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
2141 #
2142 # Note that a null pointer should not have members.
2143 #
2144 # 5) An unnamed value:
2145 #
2146 # int* p = new int(7);
2147 #
2148 # { // Captured variable
2149 # name: "p",
2150 # value: "0x00500500",
2151 # type: "int*",
2152 # members { value: "7", type: "int" } }
2153 #
2154 # 6) An unnamed pointer where the pointee was not captured:
2155 #
2156 # int* p = new int(7);
2157 # int** pp = &p;
2158 #
2159 # { // Captured variable
2160 # name: "pp",
2161 # value: "0x00500500",
2162 # type: "int**",
2163 # members {
2164 # value: "0x00400400",
2165 # type: "int*"
2166 # status {
2167 # is_error: true,
2168 # description: { format: "unavailable" } }
2169 # }
2170 # }
2171 # }
2172 #
2173 # To optimize computation, memory and network traffic, variables that
2174 # repeat in the output multiple times can be stored once in a shared
2175 # variable table and be referenced using the `var_table_index` field. The
2176 # variables stored in the shared table are nameless and are essentially
2177 # a partition of the complete variable. To reconstruct the complete
2178 # variable, merge the referencing variable with the referenced variable.
2179 #
2180 # When using the shared variable table, the following variables:
2181 #
2182 # T x = { 3, 7 };
2183 # T* p = &x;
2184 # T& r = x;
2185 #
2186 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
2187 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
2188 # { name: "r", type="T&", var_table_index: 3 }
2189 #
2190 # { // Shared variable table entry #3:
2191 # members { name: "m1", value: "3", type: "int" },
2192 # members { name: "m2", value: "7", type: "int" }
2193 # }
2194 #
2195 # Note that the pointer address is stored with the referencing variable
2196 # and not with the referenced variable. This allows the referenced variable
2197 # to be shared between pointers and references.
2198 #
2199 # The type field is optional. The debugger agent may or may not support it.
2200 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
2201 # unset. A status of a single variable only applies to that variable or
2202 # expression. The rest of breakpoint data still remains valid. Variables
2203 # might be reported in error state even when breakpoint is not in final
2204 # state.
2205 #
2206 # The message may refer to variable name with `refers_to` set to
2207 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2208 # In either case variable value and members will be unset.
2209 #
2210 # Example of error message applied to name: `Invalid expression syntax`.
2211 #
2212 # Example of information message applied to value: `Not captured`.
2213 #
2214 # Examples of error message applied to value:
2215 #
2216 # * `Malformed string`,
2217 # * `Field f not found in class C`
2218 # * `Null pointer dereference`
2219 # The message can indicate an error or informational status, and refer to
2220 # specific parts of the containing object.
2221 # For example, the `Breakpoint.status` field can indicate an error referring
2222 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
2223 "isError": True or False, # Distinguishes errors from informational messages.
2224 "refersTo": "A String", # Reference to which the message applies.
2225 "description": { # Represents a message with parameters. # Status message text.
2226 "parameters": [ # Optional parameters to be embedded into the message.
2227 "A String",
2228 ],
2229 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
2230 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2231 # character.
2232 #
2233 # Examples:
2234 #
2235 # * `Failed to load '$0' which helps debug $1 the first time it
2236 # is loaded. Again, $0 is very important.`
2237 # * `Please pay $$10 to use $0 instead of $1.`
2238 },
2239 },
2240 "name": "A String", # Name of the variable, if any.
2241 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
2242 # one variable can reference the same variable in the table. The
2243 # `var_table_index` field is an index into `variable_table` in Breakpoint.
2244 "value": "A String", # Simple value of the variable.
2245 "members": [ # Members contained or pointed to by the variable.
2246 # Object with schema name: Variable
2247 ],
2248 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
2249 # `var_table_index`, `type` goes next to `value`. The interpretation of
2250 # a type is agent specific. It is recommended to include the dynamic type
2251 # rather than a static type of an object.
2252 },
2253 ],
2254 "location": { # Represents a location in the source code. # Source location of the call site.
2255 "path": "A String", # Path to the source file within the source context of the target binary.
2256 "line": 42, # Line inside the file. The first line in the file has the value `1`.
2257 },
Takashi Matsuo06694102015-09-11 13:55:40 -07002258 },
2259 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -04002260 "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002261 "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
2262 # The expressions are composed using expressions in the programming language
2263 # at the source location. If the breakpoint action is `LOG`, the evaluated
2264 # expressions are included in log statements.
Takashi Matsuo06694102015-09-11 13:55:40 -07002265 "A String",
2266 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -04002267 "location": { # Represents a location in the source code. # Breakpoint source location.
2268 "path": "A String", # Path to the source file within the source context of the target binary.
2269 "line": 42, # Line inside the file. The first line in the file has the value `1`.
2270 },
2271 "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
2272 # resolution.
2273 "action": "A String", # Action that the agent should perform when the code at the
2274 # breakpoint location is hit.
2275 "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
2276 # the breakpoint hits. The message may include parameter placeholders `$0`,
2277 # `$1`, etc. These placeholders are replaced with the evaluated value
2278 # of the appropriate expression. Expressions not referenced in
2279 # `log_message_format` are not logged.
2280 #
2281 # Example: `Message received, id = $0, count = $1` with
2282 # `expressions` = `[ message.id, message.count ]`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002283 "isFinalState": True or False, # When true, indicates that this is a final result and the
2284 # breakpoint state will not change from here on.
2285 "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
2286 # The evaluated expressions appear in exactly the same order they
2287 # are listed in the `expressions` field.
2288 # The `name` field holds the original expression text, the `value` or
2289 # `members` field holds the result of the evaluated expression.
2290 # If the expression cannot be evaluated, the `status` inside the `Variable`
2291 # will indicate an error and contain the error text.
2292 { # Represents a variable or an argument possibly of a compound object type.
2293 # Note how the following variables are represented:
2294 #
2295 # 1) A simple variable:
2296 #
2297 # int x = 5
2298 #
2299 # { name: "x", value: "5", type: "int" } // Captured variable
2300 #
2301 # 2) A compound object:
2302 #
2303 # struct T {
2304 # int m1;
2305 # int m2;
2306 # };
2307 # T x = { 3, 7 };
2308 #
2309 # { // Captured variable
2310 # name: "x",
2311 # type: "T",
2312 # members { name: "m1", value: "3", type: "int" },
2313 # members { name: "m2", value: "7", type: "int" }
2314 # }
2315 #
2316 # 3) A pointer where the pointee was captured:
2317 #
2318 # T x = { 3, 7 };
2319 # T* p = &x;
2320 #
2321 # { // Captured variable
2322 # name: "p",
2323 # type: "T*",
2324 # value: "0x00500500",
2325 # members { name: "m1", value: "3", type: "int" },
2326 # members { name: "m2", value: "7", type: "int" }
2327 # }
2328 #
2329 # 4) A pointer where the pointee was not captured:
2330 #
2331 # T* p = new T;
2332 #
2333 # { // Captured variable
2334 # name: "p",
2335 # type: "T*",
2336 # value: "0x00400400"
2337 # status { is_error: true, description { format: "unavailable" } }
2338 # }
2339 #
2340 # The status should describe the reason for the missing value,
2341 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
2342 #
2343 # Note that a null pointer should not have members.
2344 #
2345 # 5) An unnamed value:
2346 #
2347 # int* p = new int(7);
2348 #
2349 # { // Captured variable
2350 # name: "p",
2351 # value: "0x00500500",
2352 # type: "int*",
2353 # members { value: "7", type: "int" } }
2354 #
2355 # 6) An unnamed pointer where the pointee was not captured:
2356 #
2357 # int* p = new int(7);
2358 # int** pp = &p;
2359 #
2360 # { // Captured variable
2361 # name: "pp",
2362 # value: "0x00500500",
2363 # type: "int**",
2364 # members {
2365 # value: "0x00400400",
2366 # type: "int*"
2367 # status {
2368 # is_error: true,
2369 # description: { format: "unavailable" } }
2370 # }
2371 # }
2372 # }
2373 #
2374 # To optimize computation, memory and network traffic, variables that
2375 # repeat in the output multiple times can be stored once in a shared
2376 # variable table and be referenced using the `var_table_index` field. The
2377 # variables stored in the shared table are nameless and are essentially
2378 # a partition of the complete variable. To reconstruct the complete
2379 # variable, merge the referencing variable with the referenced variable.
2380 #
2381 # When using the shared variable table, the following variables:
2382 #
2383 # T x = { 3, 7 };
2384 # T* p = &x;
2385 # T& r = x;
2386 #
2387 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
2388 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
2389 # { name: "r", type="T&", var_table_index: 3 }
2390 #
2391 # { // Shared variable table entry #3:
2392 # members { name: "m1", value: "3", type: "int" },
2393 # members { name: "m2", value: "7", type: "int" }
2394 # }
2395 #
2396 # Note that the pointer address is stored with the referencing variable
2397 # and not with the referenced variable. This allows the referenced variable
2398 # to be shared between pointers and references.
2399 #
2400 # The type field is optional. The debugger agent may or may not support it.
2401 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
2402 # unset. A status of a single variable only applies to that variable or
2403 # expression. The rest of breakpoint data still remains valid. Variables
2404 # might be reported in error state even when breakpoint is not in final
2405 # state.
2406 #
2407 # The message may refer to variable name with `refers_to` set to
2408 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2409 # In either case variable value and members will be unset.
2410 #
2411 # Example of error message applied to name: `Invalid expression syntax`.
2412 #
2413 # Example of information message applied to value: `Not captured`.
2414 #
2415 # Examples of error message applied to value:
2416 #
2417 # * `Malformed string`,
2418 # * `Field f not found in class C`
2419 # * `Null pointer dereference`
2420 # The message can indicate an error or informational status, and refer to
2421 # specific parts of the containing object.
2422 # For example, the `Breakpoint.status` field can indicate an error referring
2423 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Takashi Matsuo06694102015-09-11 13:55:40 -07002424 "isError": True or False, # Distinguishes errors from informational messages.
2425 "refersTo": "A String", # Reference to which the message applies.
2426 "description": { # Represents a message with parameters. # Status message text.
2427 "parameters": [ # Optional parameters to be embedded into the message.
2428 "A String",
2429 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002430 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
2431 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2432 # character.
2433 #
2434 # Examples:
2435 #
2436 # * `Failed to load '$0' which helps debug $1 the first time it
2437 # is loaded. Again, $0 is very important.`
2438 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07002439 },
2440 },
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08002441 "name": "A String", # Name of the variable, if any.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002442 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
2443 # one variable can reference the same variable in the table. The
2444 # `var_table_index` field is an index into `variable_table` in Breakpoint.
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08002445 "value": "A String", # Simple value of the variable.
2446 "members": [ # Members contained or pointed to by the variable.
2447 # Object with schema name: Variable
2448 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002449 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
2450 # `var_table_index`, `type` goes next to `value`. The interpretation of
2451 # a type is agent specific. It is recommended to include the dynamic type
2452 # rather than a static type of an object.
Takashi Matsuo06694102015-09-11 13:55:40 -07002453 },
2454 ],
2455 "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002456 "condition": "A String", # Condition that triggers the breakpoint.
2457 # The condition is a compound boolean expression composed using expressions
2458 # in a programming language at the source location.
Takashi Matsuo06694102015-09-11 13:55:40 -07002459}
2460
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002461 clientVersion: string, The client version making the call.
2462Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
Takashi Matsuo06694102015-09-11 13:55:40 -07002463 x__xgafv: string, V1 error format.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002464 Allowed values
2465 1 - v1 error format
2466 2 - v2 error format
Takashi Matsuo06694102015-09-11 13:55:40 -07002467
2468Returns:
2469 An object of the form:
2470
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08002471 { # Response for setting a breakpoint.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002472 "breakpoint": { # Represents the breakpoint specification, status and results. # Breakpoint resource.
2473 # The field `id` is guaranteed to be set (in addition to the echoed fileds).
2474 "status": { # Represents a contextual status message. # Breakpoint status.
2475 #
2476 # The status includes an error flag and a human readable message.
2477 # This field is usually unset. The message can be either
2478 # informational or an error message. Regardless, clients should always
2479 # display the text message back to the user.
2480 #
2481 # Error status indicates complete failure of the breakpoint.
2482 #
2483 # Example (non-final state): `Still loading symbols...`
2484 #
2485 # Examples (final state):
2486 #
2487 # * `Invalid line number` referring to location
2488 # * `Field f not found in class C` referring to condition
2489 # The message can indicate an error or informational status, and refer to
2490 # specific parts of the containing object.
2491 # For example, the `Breakpoint.status` field can indicate an error referring
2492 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Takashi Matsuo06694102015-09-11 13:55:40 -07002493 "isError": True or False, # Distinguishes errors from informational messages.
2494 "refersTo": "A String", # Reference to which the message applies.
2495 "description": { # Represents a message with parameters. # Status message text.
2496 "parameters": [ # Optional parameters to be embedded into the message.
2497 "A String",
2498 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002499 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
2500 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2501 # character.
2502 #
2503 # Examples:
2504 #
2505 # * `Failed to load '$0' which helps debug $1 the first time it
2506 # is loaded. Again, $0 is very important.`
2507 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07002508 },
2509 },
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002510 "variableTable": [ # The `variable_table` exists to aid with computation, memory and network
2511 # traffic optimization. It enables storing a variable once and reference
2512 # it from multiple variables, including variables stored in the
2513 # `variable_table` itself.
2514 # For example, the same `this` object, which may appear at many levels of
2515 # the stack, can have all of its data stored once in this table. The
2516 # stack frame variables then would hold only a reference to it.
2517 #
2518 # The variable `var_table_index` field is an index into this repeated field.
2519 # The stored objects are nameless and get their name from the referencing
2520 # variable. The effective variable is a merge of the referencing variable
2521 # and the referenced variable.
2522 { # Represents a variable or an argument possibly of a compound object type.
2523 # Note how the following variables are represented:
2524 #
2525 # 1) A simple variable:
2526 #
2527 # int x = 5
2528 #
2529 # { name: "x", value: "5", type: "int" } // Captured variable
2530 #
2531 # 2) A compound object:
2532 #
2533 # struct T {
2534 # int m1;
2535 # int m2;
2536 # };
2537 # T x = { 3, 7 };
2538 #
2539 # { // Captured variable
2540 # name: "x",
2541 # type: "T",
2542 # members { name: "m1", value: "3", type: "int" },
2543 # members { name: "m2", value: "7", type: "int" }
2544 # }
2545 #
2546 # 3) A pointer where the pointee was captured:
2547 #
2548 # T x = { 3, 7 };
2549 # T* p = &x;
2550 #
2551 # { // Captured variable
2552 # name: "p",
2553 # type: "T*",
2554 # value: "0x00500500",
2555 # members { name: "m1", value: "3", type: "int" },
2556 # members { name: "m2", value: "7", type: "int" }
2557 # }
2558 #
2559 # 4) A pointer where the pointee was not captured:
2560 #
2561 # T* p = new T;
2562 #
2563 # { // Captured variable
2564 # name: "p",
2565 # type: "T*",
2566 # value: "0x00400400"
2567 # status { is_error: true, description { format: "unavailable" } }
2568 # }
2569 #
2570 # The status should describe the reason for the missing value,
2571 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
2572 #
2573 # Note that a null pointer should not have members.
2574 #
2575 # 5) An unnamed value:
2576 #
2577 # int* p = new int(7);
2578 #
2579 # { // Captured variable
2580 # name: "p",
2581 # value: "0x00500500",
2582 # type: "int*",
2583 # members { value: "7", type: "int" } }
2584 #
2585 # 6) An unnamed pointer where the pointee was not captured:
2586 #
2587 # int* p = new int(7);
2588 # int** pp = &p;
2589 #
2590 # { // Captured variable
2591 # name: "pp",
2592 # value: "0x00500500",
2593 # type: "int**",
2594 # members {
2595 # value: "0x00400400",
2596 # type: "int*"
2597 # status {
2598 # is_error: true,
2599 # description: { format: "unavailable" } }
2600 # }
2601 # }
2602 # }
2603 #
2604 # To optimize computation, memory and network traffic, variables that
2605 # repeat in the output multiple times can be stored once in a shared
2606 # variable table and be referenced using the `var_table_index` field. The
2607 # variables stored in the shared table are nameless and are essentially
2608 # a partition of the complete variable. To reconstruct the complete
2609 # variable, merge the referencing variable with the referenced variable.
2610 #
2611 # When using the shared variable table, the following variables:
2612 #
2613 # T x = { 3, 7 };
2614 # T* p = &x;
2615 # T& r = x;
2616 #
2617 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
2618 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
2619 # { name: "r", type="T&", var_table_index: 3 }
2620 #
2621 # { // Shared variable table entry #3:
2622 # members { name: "m1", value: "3", type: "int" },
2623 # members { name: "m2", value: "7", type: "int" }
2624 # }
2625 #
2626 # Note that the pointer address is stored with the referencing variable
2627 # and not with the referenced variable. This allows the referenced variable
2628 # to be shared between pointers and references.
2629 #
2630 # The type field is optional. The debugger agent may or may not support it.
2631 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
2632 # unset. A status of a single variable only applies to that variable or
2633 # expression. The rest of breakpoint data still remains valid. Variables
2634 # might be reported in error state even when breakpoint is not in final
2635 # state.
2636 #
2637 # The message may refer to variable name with `refers_to` set to
2638 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2639 # In either case variable value and members will be unset.
2640 #
2641 # Example of error message applied to name: `Invalid expression syntax`.
2642 #
2643 # Example of information message applied to value: `Not captured`.
2644 #
2645 # Examples of error message applied to value:
2646 #
2647 # * `Malformed string`,
2648 # * `Field f not found in class C`
2649 # * `Null pointer dereference`
2650 # The message can indicate an error or informational status, and refer to
2651 # specific parts of the containing object.
2652 # For example, the `Breakpoint.status` field can indicate an error referring
2653 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Takashi Matsuo06694102015-09-11 13:55:40 -07002654 "isError": True or False, # Distinguishes errors from informational messages.
2655 "refersTo": "A String", # Reference to which the message applies.
2656 "description": { # Represents a message with parameters. # Status message text.
2657 "parameters": [ # Optional parameters to be embedded into the message.
2658 "A String",
2659 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002660 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
2661 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2662 # character.
2663 #
2664 # Examples:
2665 #
2666 # * `Failed to load '$0' which helps debug $1 the first time it
2667 # is loaded. Again, $0 is very important.`
2668 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07002669 },
2670 },
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08002671 "name": "A String", # Name of the variable, if any.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002672 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
2673 # one variable can reference the same variable in the table. The
2674 # `var_table_index` field is an index into `variable_table` in Breakpoint.
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08002675 "value": "A String", # Simple value of the variable.
2676 "members": [ # Members contained or pointed to by the variable.
2677 # Object with schema name: Variable
2678 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002679 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
2680 # `var_table_index`, `type` goes next to `value`. The interpretation of
2681 # a type is agent specific. It is recommended to include the dynamic type
2682 # rather than a static type of an object.
Takashi Matsuo06694102015-09-11 13:55:40 -07002683 },
2684 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -04002685 "userEmail": "A String", # E-mail address of the user that created this breakpoint
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08002686 "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002687 "labels": { # A set of custom breakpoint properties, populated by the agent, to be
2688 # displayed to the user.
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -07002689 "a_key": "A String",
2690 },
Takashi Matsuo06694102015-09-11 13:55:40 -07002691 "stackFrames": [ # The stack at breakpoint time.
2692 { # Represents a stack frame context.
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08002693 "function": "A String", # Demangled function name at the call site.
Thomas Coffee2f245372017-03-27 10:39:26 -07002694 "arguments": [ # Set of arguments passed to this function.
2695 # Note that this might not be populated for all stack frames.
2696 { # Represents a variable or an argument possibly of a compound object type.
2697 # Note how the following variables are represented:
2698 #
2699 # 1) A simple variable:
2700 #
2701 # int x = 5
2702 #
2703 # { name: "x", value: "5", type: "int" } // Captured variable
2704 #
2705 # 2) A compound object:
2706 #
2707 # struct T {
2708 # int m1;
2709 # int m2;
2710 # };
2711 # T x = { 3, 7 };
2712 #
2713 # { // Captured variable
2714 # name: "x",
2715 # type: "T",
2716 # members { name: "m1", value: "3", type: "int" },
2717 # members { name: "m2", value: "7", type: "int" }
2718 # }
2719 #
2720 # 3) A pointer where the pointee was captured:
2721 #
2722 # T x = { 3, 7 };
2723 # T* p = &x;
2724 #
2725 # { // Captured variable
2726 # name: "p",
2727 # type: "T*",
2728 # value: "0x00500500",
2729 # members { name: "m1", value: "3", type: "int" },
2730 # members { name: "m2", value: "7", type: "int" }
2731 # }
2732 #
2733 # 4) A pointer where the pointee was not captured:
2734 #
2735 # T* p = new T;
2736 #
2737 # { // Captured variable
2738 # name: "p",
2739 # type: "T*",
2740 # value: "0x00400400"
2741 # status { is_error: true, description { format: "unavailable" } }
2742 # }
2743 #
2744 # The status should describe the reason for the missing value,
2745 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
2746 #
2747 # Note that a null pointer should not have members.
2748 #
2749 # 5) An unnamed value:
2750 #
2751 # int* p = new int(7);
2752 #
2753 # { // Captured variable
2754 # name: "p",
2755 # value: "0x00500500",
2756 # type: "int*",
2757 # members { value: "7", type: "int" } }
2758 #
2759 # 6) An unnamed pointer where the pointee was not captured:
2760 #
2761 # int* p = new int(7);
2762 # int** pp = &p;
2763 #
2764 # { // Captured variable
2765 # name: "pp",
2766 # value: "0x00500500",
2767 # type: "int**",
2768 # members {
2769 # value: "0x00400400",
2770 # type: "int*"
2771 # status {
2772 # is_error: true,
2773 # description: { format: "unavailable" } }
2774 # }
2775 # }
2776 # }
2777 #
2778 # To optimize computation, memory and network traffic, variables that
2779 # repeat in the output multiple times can be stored once in a shared
2780 # variable table and be referenced using the `var_table_index` field. The
2781 # variables stored in the shared table are nameless and are essentially
2782 # a partition of the complete variable. To reconstruct the complete
2783 # variable, merge the referencing variable with the referenced variable.
2784 #
2785 # When using the shared variable table, the following variables:
2786 #
2787 # T x = { 3, 7 };
2788 # T* p = &x;
2789 # T& r = x;
2790 #
2791 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
2792 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
2793 # { name: "r", type="T&", var_table_index: 3 }
2794 #
2795 # { // Shared variable table entry #3:
2796 # members { name: "m1", value: "3", type: "int" },
2797 # members { name: "m2", value: "7", type: "int" }
2798 # }
2799 #
2800 # Note that the pointer address is stored with the referencing variable
2801 # and not with the referenced variable. This allows the referenced variable
2802 # to be shared between pointers and references.
2803 #
2804 # The type field is optional. The debugger agent may or may not support it.
2805 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
2806 # unset. A status of a single variable only applies to that variable or
2807 # expression. The rest of breakpoint data still remains valid. Variables
2808 # might be reported in error state even when breakpoint is not in final
2809 # state.
2810 #
2811 # The message may refer to variable name with `refers_to` set to
2812 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2813 # In either case variable value and members will be unset.
2814 #
2815 # Example of error message applied to name: `Invalid expression syntax`.
2816 #
2817 # Example of information message applied to value: `Not captured`.
2818 #
2819 # Examples of error message applied to value:
2820 #
2821 # * `Malformed string`,
2822 # * `Field f not found in class C`
2823 # * `Null pointer dereference`
2824 # The message can indicate an error or informational status, and refer to
2825 # specific parts of the containing object.
2826 # For example, the `Breakpoint.status` field can indicate an error referring
2827 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
2828 "isError": True or False, # Distinguishes errors from informational messages.
2829 "refersTo": "A String", # Reference to which the message applies.
2830 "description": { # Represents a message with parameters. # Status message text.
2831 "parameters": [ # Optional parameters to be embedded into the message.
2832 "A String",
2833 ],
2834 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
2835 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2836 # character.
2837 #
2838 # Examples:
2839 #
2840 # * `Failed to load '$0' which helps debug $1 the first time it
2841 # is loaded. Again, $0 is very important.`
2842 # * `Please pay $$10 to use $0 instead of $1.`
2843 },
2844 },
2845 "name": "A String", # Name of the variable, if any.
2846 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
2847 # one variable can reference the same variable in the table. The
2848 # `var_table_index` field is an index into `variable_table` in Breakpoint.
2849 "value": "A String", # Simple value of the variable.
2850 "members": [ # Members contained or pointed to by the variable.
2851 # Object with schema name: Variable
2852 ],
2853 "type": "A String", # 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 },
2858 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -04002859 "locals": [ # Set of local variables at the stack frame location.
2860 # Note that this might not be populated for all stack frames.
2861 { # Represents a variable or an argument possibly of a compound object type.
2862 # Note how the following variables are represented:
2863 #
2864 # 1) A simple variable:
2865 #
2866 # int x = 5
2867 #
2868 # { name: "x", value: "5", type: "int" } // Captured variable
2869 #
2870 # 2) A compound object:
2871 #
2872 # struct T {
2873 # int m1;
2874 # int m2;
2875 # };
2876 # T x = { 3, 7 };
2877 #
2878 # { // Captured variable
2879 # name: "x",
2880 # type: "T",
2881 # members { name: "m1", value: "3", type: "int" },
2882 # members { name: "m2", value: "7", type: "int" }
2883 # }
2884 #
2885 # 3) A pointer where the pointee was captured:
2886 #
2887 # T x = { 3, 7 };
2888 # T* p = &x;
2889 #
2890 # { // Captured variable
2891 # name: "p",
2892 # type: "T*",
2893 # value: "0x00500500",
2894 # members { name: "m1", value: "3", type: "int" },
2895 # members { name: "m2", value: "7", type: "int" }
2896 # }
2897 #
2898 # 4) A pointer where the pointee was not captured:
2899 #
2900 # T* p = new T;
2901 #
2902 # { // Captured variable
2903 # name: "p",
2904 # type: "T*",
2905 # value: "0x00400400"
2906 # status { is_error: true, description { format: "unavailable" } }
2907 # }
2908 #
2909 # The status should describe the reason for the missing value,
2910 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
2911 #
2912 # Note that a null pointer should not have members.
2913 #
2914 # 5) An unnamed value:
2915 #
2916 # int* p = new int(7);
2917 #
2918 # { // Captured variable
2919 # name: "p",
2920 # value: "0x00500500",
2921 # type: "int*",
2922 # members { value: "7", type: "int" } }
2923 #
2924 # 6) An unnamed pointer where the pointee was not captured:
2925 #
2926 # int* p = new int(7);
2927 # int** pp = &p;
2928 #
2929 # { // Captured variable
2930 # name: "pp",
2931 # value: "0x00500500",
2932 # type: "int**",
2933 # members {
2934 # value: "0x00400400",
2935 # type: "int*"
2936 # status {
2937 # is_error: true,
2938 # description: { format: "unavailable" } }
2939 # }
2940 # }
2941 # }
2942 #
2943 # To optimize computation, memory and network traffic, variables that
2944 # repeat in the output multiple times can be stored once in a shared
2945 # variable table and be referenced using the `var_table_index` field. The
2946 # variables stored in the shared table are nameless and are essentially
2947 # a partition of the complete variable. To reconstruct the complete
2948 # variable, merge the referencing variable with the referenced variable.
2949 #
2950 # When using the shared variable table, the following variables:
2951 #
2952 # T x = { 3, 7 };
2953 # T* p = &x;
2954 # T& r = x;
2955 #
2956 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
2957 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
2958 # { name: "r", type="T&", var_table_index: 3 }
2959 #
2960 # { // Shared variable table entry #3:
2961 # members { name: "m1", value: "3", type: "int" },
2962 # members { name: "m2", value: "7", type: "int" }
2963 # }
2964 #
2965 # Note that the pointer address is stored with the referencing variable
2966 # and not with the referenced variable. This allows the referenced variable
2967 # to be shared between pointers and references.
2968 #
2969 # The type field is optional. The debugger agent may or may not support it.
2970 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
2971 # unset. A status of a single variable only applies to that variable or
2972 # expression. The rest of breakpoint data still remains valid. Variables
2973 # might be reported in error state even when breakpoint is not in final
2974 # state.
2975 #
2976 # The message may refer to variable name with `refers_to` set to
2977 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2978 # In either case variable value and members will be unset.
2979 #
2980 # Example of error message applied to name: `Invalid expression syntax`.
2981 #
2982 # Example of information message applied to value: `Not captured`.
2983 #
2984 # Examples of error message applied to value:
2985 #
2986 # * `Malformed string`,
2987 # * `Field f not found in class C`
2988 # * `Null pointer dereference`
2989 # The message can indicate an error or informational status, and refer to
2990 # specific parts of the containing object.
2991 # For example, the `Breakpoint.status` field can indicate an error referring
2992 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
2993 "isError": True or False, # Distinguishes errors from informational messages.
2994 "refersTo": "A String", # Reference to which the message applies.
2995 "description": { # Represents a message with parameters. # Status message text.
2996 "parameters": [ # Optional parameters to be embedded into the message.
2997 "A String",
2998 ],
2999 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
3000 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
3001 # character.
3002 #
3003 # Examples:
3004 #
3005 # * `Failed to load '$0' which helps debug $1 the first time it
3006 # is loaded. Again, $0 is very important.`
3007 # * `Please pay $$10 to use $0 instead of $1.`
3008 },
3009 },
3010 "name": "A String", # Name of the variable, if any.
3011 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
3012 # one variable can reference the same variable in the table. The
3013 # `var_table_index` field is an index into `variable_table` in Breakpoint.
3014 "value": "A String", # Simple value of the variable.
3015 "members": [ # Members contained or pointed to by the variable.
3016 # Object with schema name: Variable
3017 ],
3018 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
3019 # `var_table_index`, `type` goes next to `value`. The interpretation of
3020 # a type is agent specific. It is recommended to include the dynamic type
3021 # rather than a static type of an object.
3022 },
3023 ],
3024 "location": { # Represents a location in the source code. # Source location of the call site.
3025 "path": "A String", # Path to the source file within the source context of the target binary.
3026 "line": 42, # Line inside the file. The first line in the file has the value `1`.
3027 },
Takashi Matsuo06694102015-09-11 13:55:40 -07003028 },
3029 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -04003030 "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003031 "expressions": [ # List of read-only expressions to evaluate at the breakpoint location.
3032 # The expressions are composed using expressions in the programming language
3033 # at the source location. If the breakpoint action is `LOG`, the evaluated
3034 # expressions are included in log statements.
Takashi Matsuo06694102015-09-11 13:55:40 -07003035 "A String",
3036 ],
Sai Cheemalapati4ba8c232017-06-06 18:46:08 -04003037 "location": { # Represents a location in the source code. # Breakpoint source location.
3038 "path": "A String", # Path to the source file within the source context of the target binary.
3039 "line": 42, # Line inside the file. The first line in the file has the value `1`.
3040 },
3041 "finalTime": "A String", # Time this breakpoint was finalized as seen by the server in seconds
3042 # resolution.
3043 "action": "A String", # Action that the agent should perform when the code at the
3044 # breakpoint location is hit.
3045 "logMessageFormat": "A String", # Only relevant when action is `LOG`. Defines the message to log when
3046 # the breakpoint hits. The message may include parameter placeholders `$0`,
3047 # `$1`, etc. These placeholders are replaced with the evaluated value
3048 # of the appropriate expression. Expressions not referenced in
3049 # `log_message_format` are not logged.
3050 #
3051 # Example: `Message received, id = $0, count = $1` with
3052 # `expressions` = `[ message.id, message.count ]`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003053 "isFinalState": True or False, # When true, indicates that this is a final result and the
3054 # breakpoint state will not change from here on.
3055 "evaluatedExpressions": [ # Values of evaluated expressions at breakpoint time.
3056 # The evaluated expressions appear in exactly the same order they
3057 # are listed in the `expressions` field.
3058 # The `name` field holds the original expression text, the `value` or
3059 # `members` field holds the result of the evaluated expression.
3060 # If the expression cannot be evaluated, the `status` inside the `Variable`
3061 # will indicate an error and contain the error text.
3062 { # Represents a variable or an argument possibly of a compound object type.
3063 # Note how the following variables are represented:
3064 #
3065 # 1) A simple variable:
3066 #
3067 # int x = 5
3068 #
3069 # { name: "x", value: "5", type: "int" } // Captured variable
3070 #
3071 # 2) A compound object:
3072 #
3073 # struct T {
3074 # int m1;
3075 # int m2;
3076 # };
3077 # T x = { 3, 7 };
3078 #
3079 # { // Captured variable
3080 # name: "x",
3081 # type: "T",
3082 # members { name: "m1", value: "3", type: "int" },
3083 # members { name: "m2", value: "7", type: "int" }
3084 # }
3085 #
3086 # 3) A pointer where the pointee was captured:
3087 #
3088 # T x = { 3, 7 };
3089 # T* p = &x;
3090 #
3091 # { // Captured variable
3092 # name: "p",
3093 # type: "T*",
3094 # value: "0x00500500",
3095 # members { name: "m1", value: "3", type: "int" },
3096 # members { name: "m2", value: "7", type: "int" }
3097 # }
3098 #
3099 # 4) A pointer where the pointee was not captured:
3100 #
3101 # T* p = new T;
3102 #
3103 # { // Captured variable
3104 # name: "p",
3105 # type: "T*",
3106 # value: "0x00400400"
3107 # status { is_error: true, description { format: "unavailable" } }
3108 # }
3109 #
3110 # The status should describe the reason for the missing value,
3111 # such as `<optimized out>`, `<inaccessible>`, `<pointers limit reached>`.
3112 #
3113 # Note that a null pointer should not have members.
3114 #
3115 # 5) An unnamed value:
3116 #
3117 # int* p = new int(7);
3118 #
3119 # { // Captured variable
3120 # name: "p",
3121 # value: "0x00500500",
3122 # type: "int*",
3123 # members { value: "7", type: "int" } }
3124 #
3125 # 6) An unnamed pointer where the pointee was not captured:
3126 #
3127 # int* p = new int(7);
3128 # int** pp = &p;
3129 #
3130 # { // Captured variable
3131 # name: "pp",
3132 # value: "0x00500500",
3133 # type: "int**",
3134 # members {
3135 # value: "0x00400400",
3136 # type: "int*"
3137 # status {
3138 # is_error: true,
3139 # description: { format: "unavailable" } }
3140 # }
3141 # }
3142 # }
3143 #
3144 # To optimize computation, memory and network traffic, variables that
3145 # repeat in the output multiple times can be stored once in a shared
3146 # variable table and be referenced using the `var_table_index` field. The
3147 # variables stored in the shared table are nameless and are essentially
3148 # a partition of the complete variable. To reconstruct the complete
3149 # variable, merge the referencing variable with the referenced variable.
3150 #
3151 # When using the shared variable table, the following variables:
3152 #
3153 # T x = { 3, 7 };
3154 # T* p = &x;
3155 # T& r = x;
3156 #
3157 # { name: "x", var_table_index: 3, type: "T" } // Captured variables
3158 # { name: "p", value "0x00500500", type="T*", var_table_index: 3 }
3159 # { name: "r", type="T&", var_table_index: 3 }
3160 #
3161 # { // Shared variable table entry #3:
3162 # members { name: "m1", value: "3", type: "int" },
3163 # members { name: "m2", value: "7", type: "int" }
3164 # }
3165 #
3166 # Note that the pointer address is stored with the referencing variable
3167 # and not with the referenced variable. This allows the referenced variable
3168 # to be shared between pointers and references.
3169 #
3170 # The type field is optional. The debugger agent may or may not support it.
3171 "status": { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
3172 # unset. A status of a single variable only applies to that variable or
3173 # expression. The rest of breakpoint data still remains valid. Variables
3174 # might be reported in error state even when breakpoint is not in final
3175 # state.
3176 #
3177 # The message may refer to variable name with `refers_to` set to
3178 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
3179 # In either case variable value and members will be unset.
3180 #
3181 # Example of error message applied to name: `Invalid expression syntax`.
3182 #
3183 # Example of information message applied to value: `Not captured`.
3184 #
3185 # Examples of error message applied to value:
3186 #
3187 # * `Malformed string`,
3188 # * `Field f not found in class C`
3189 # * `Null pointer dereference`
3190 # The message can indicate an error or informational status, and refer to
3191 # specific parts of the containing object.
3192 # For example, the `Breakpoint.status` field can indicate an error referring
3193 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Takashi Matsuo06694102015-09-11 13:55:40 -07003194 "isError": True or False, # Distinguishes errors from informational messages.
3195 "refersTo": "A String", # Reference to which the message applies.
3196 "description": { # Represents a message with parameters. # Status message text.
3197 "parameters": [ # Optional parameters to be embedded into the message.
3198 "A String",
3199 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003200 "format": "A String", # Format template for the message. The `format` uses placeholders `$0`,
3201 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
3202 # character.
3203 #
3204 # Examples:
3205 #
3206 # * `Failed to load '$0' which helps debug $1 the first time it
3207 # is loaded. Again, $0 is very important.`
3208 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07003209 },
3210 },
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08003211 "name": "A String", # Name of the variable, if any.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003212 "varTableIndex": 42, # Reference to a variable in the shared variable table. More than
3213 # one variable can reference the same variable in the table. The
3214 # `var_table_index` field is an index into `variable_table` in Breakpoint.
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08003215 "value": "A String", # Simple value of the variable.
3216 "members": [ # Members contained or pointed to by the variable.
3217 # Object with schema name: Variable
3218 ],
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003219 "type": "A String", # Variable type (e.g. `MyClass`). If the variable is split with
3220 # `var_table_index`, `type` goes next to `value`. The interpretation of
3221 # a type is agent specific. It is recommended to include the dynamic type
3222 # rather than a static type of an object.
Takashi Matsuo06694102015-09-11 13:55:40 -07003223 },
3224 ],
3225 "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003226 "condition": "A String", # Condition that triggers the breakpoint.
3227 # The condition is a compound boolean expression composed using expressions
3228 # in a programming language at the source location.
Takashi Matsuo06694102015-09-11 13:55:40 -07003229 },
3230 }</pre>
3231</div>
3232
3233</body></html>