• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<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
75<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>
76<h2>Instance Methods</h2>
77<p class="toc_element">
78  <code><a href="#delete">delete(debuggeeId, breakpointId, clientVersion=None, x__xgafv=None)</a></code></p>
79<p class="firstline">Deletes the breakpoint from the debuggee.</p>
80<p class="toc_element">
81  <code><a href="#get">get(debuggeeId, breakpointId, clientVersion=None, x__xgafv=None)</a></code></p>
82<p class="firstline">Gets breakpoint information.</p>
83<p class="toc_element">
84  <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>
85<p class="firstline">Lists all breakpoints for the debuggee.</p>
86<p class="toc_element">
87  <code><a href="#set">set(debuggeeId, body, clientVersion=None, x__xgafv=None)</a></code></p>
88<p class="firstline">Sets the breakpoint to the debuggee.</p>
89<h3>Method Details</h3>
90<div class="method">
91    <code class="details" id="delete">delete(debuggeeId, breakpointId, clientVersion=None, x__xgafv=None)</code>
92  <pre>Deletes the breakpoint from the debuggee.
93
94Args:
95  debuggeeId: string, ID of the debuggee whose breakpoint to delete. (required)
96  breakpointId: string, ID of the breakpoint to delete. (required)
97  clientVersion: string, The client version making the call.
98Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
99  x__xgafv: string, V1 error format.
100    Allowed values
101      1 - v1 error format
102      2 - v2 error format
103
104Returns:
105  An object of the form:
106
107    { # 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 `{}`.
116  }</pre>
117</div>
118
119<div class="method">
120    <code class="details" id="get">get(debuggeeId, breakpointId, clientVersion=None, x__xgafv=None)</code>
121  <pre>Gets breakpoint information.
122
123Args:
124  debuggeeId: string, ID of the debuggee whose breakpoint to get. (required)
125  breakpointId: string, ID of the breakpoint to get. (required)
126  clientVersion: string, The client version making the call.
127Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
128  x__xgafv: string, V1 error format.
129    Allowed values
130      1 - v1 error format
131      2 - v2 error format
132
133Returns:
134  An object of the form:
135
136    { # Response for getting breakpoint information.
137    "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`.
158        "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          ],
164          "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.`
173        },
174      },
175      "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`.
319            "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              ],
325              "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.`
334            },
335          },
336          "name": "A String", # Name of the variable, if any.
337          "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.
340          "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          ],
344          "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.
348        },
349      ],
350      "userEmail": "A String", # E-mail address of the user that created this breakpoint
351      "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
352      "labels": { # A set of custom breakpoint properties, populated by the agent, to be
353          # displayed to the user.
354        "a_key": "A String",
355      },
356      "stackFrames": [ # The stack at breakpoint time.
357        { # Represents a stack frame context.
358          "function": "A String", # Demangled function name at the call site.
359          "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          ],
524          "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          },
693        },
694      ],
695      "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
696      "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.
700        "A String",
701      ],
702      "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 ]`.
718      "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`.
859            "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              ],
865              "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.`
874            },
875          },
876          "name": "A String", # Name of the variable, if any.
877          "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.
880          "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          ],
884          "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.
888        },
889      ],
890      "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
891      "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.
894    },
895  }</pre>
896</div>
897
898<div class="method">
899    <code class="details" id="list">list(debuggeeId, includeAllUsers=None, includeInactive=None, x__xgafv=None, clientVersion=None, stripResults=None, action_value=None, waitToken=None)</code>
900  <pre>Lists all breakpoints for the debuggee.
901
902Args:
903  debuggeeId: string, ID of the debuggee whose breakpoints to list. (required)
904  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.
908  x__xgafv: string, V1 error format.
909    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`.
916  action_value: string, Only breakpoints with the specified action will pass the filter.
917  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`.
922
923Returns:
924  An object of the form:
925
926    { # Response for listing breakpoints.
927    "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.
933      { # Represents the breakpoint specification, status and results.
934        "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`.
953          "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            ],
959            "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.`
968          },
969        },
970        "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`.
1114              "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                ],
1120                "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.`
1129              },
1130            },
1131            "name": "A String", # Name of the variable, if any.
1132            "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.
1135            "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            ],
1139            "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.
1143          },
1144        ],
1145        "userEmail": "A String", # E-mail address of the user that created this breakpoint
1146        "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
1147        "labels": { # A set of custom breakpoint properties, populated by the agent, to be
1148            # displayed to the user.
1149          "a_key": "A String",
1150        },
1151        "stackFrames": [ # The stack at breakpoint time.
1152          { # Represents a stack frame context.
1153            "function": "A String", # Demangled function name at the call site.
1154            "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            ],
1319            "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            },
1488          },
1489        ],
1490        "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
1491        "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.
1495          "A String",
1496        ],
1497        "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 ]`.
1513        "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`.
1654              "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                ],
1660                "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.`
1669              },
1670            },
1671            "name": "A String", # Name of the variable, if any.
1672            "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.
1675            "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            ],
1679            "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.
1683          },
1684        ],
1685        "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
1686        "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.
1689      },
1690    ],
1691  }</pre>
1692</div>
1693
1694<div class="method">
1695    <code class="details" id="set">set(debuggeeId, body, clientVersion=None, x__xgafv=None)</code>
1696  <pre>Sets the breakpoint to the debuggee.
1697
1698Args:
1699  debuggeeId: string, ID of the debuggee where the breakpoint is to be set. (required)
1700  body: object, The request body. (required)
1701    The object takes the form of:
1702
1703{ # Represents the breakpoint specification, status and results.
1704  "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`.
1723    "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      ],
1729      "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.`
1738    },
1739  },
1740  "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`.
1884        "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          ],
1890          "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.`
1899        },
1900      },
1901      "name": "A String", # Name of the variable, if any.
1902      "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.
1905      "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      ],
1909      "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.
1913    },
1914  ],
1915  "userEmail": "A String", # E-mail address of the user that created this breakpoint
1916  "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
1917  "labels": { # A set of custom breakpoint properties, populated by the agent, to be
1918      # displayed to the user.
1919    "a_key": "A String",
1920  },
1921  "stackFrames": [ # The stack at breakpoint time.
1922    { # Represents a stack frame context.
1923      "function": "A String", # Demangled function name at the call site.
1924      "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      ],
2089      "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      },
2258    },
2259  ],
2260  "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
2261  "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.
2265    "A String",
2266  ],
2267  "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 ]`.
2283  "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`.
2424        "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          ],
2430          "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.`
2439        },
2440      },
2441      "name": "A String", # Name of the variable, if any.
2442      "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.
2445      "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      ],
2449      "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.
2453    },
2454  ],
2455  "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
2456  "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.
2459}
2460
2461  clientVersion: string, The client version making the call.
2462Following: `domain/type/version` (e.g., `google.com/intellij/v1`).
2463  x__xgafv: string, V1 error format.
2464    Allowed values
2465      1 - v1 error format
2466      2 - v2 error format
2467
2468Returns:
2469  An object of the form:
2470
2471    { # Response for setting a breakpoint.
2472    "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`.
2493        "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          ],
2499          "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.`
2508        },
2509      },
2510      "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`.
2654            "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              ],
2660              "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.`
2669            },
2670          },
2671          "name": "A String", # Name of the variable, if any.
2672          "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.
2675          "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          ],
2679          "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.
2683        },
2684      ],
2685      "userEmail": "A String", # E-mail address of the user that created this breakpoint
2686      "logLevel": "A String", # Indicates the severity of the log. Only relevant when action is `LOG`.
2687      "labels": { # A set of custom breakpoint properties, populated by the agent, to be
2688          # displayed to the user.
2689        "a_key": "A String",
2690      },
2691      "stackFrames": [ # The stack at breakpoint time.
2692        { # Represents a stack frame context.
2693          "function": "A String", # Demangled function name at the call site.
2694          "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          ],
2859          "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          },
3028        },
3029      ],
3030      "createTime": "A String", # Time this breakpoint was created by the server in seconds resolution.
3031      "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.
3035        "A String",
3036      ],
3037      "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 ]`.
3053      "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`.
3194            "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              ],
3200              "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.`
3209            },
3210          },
3211          "name": "A String", # Name of the variable, if any.
3212          "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.
3215          "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          ],
3219          "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.
3223        },
3224      ],
3225      "id": "A String", # Breakpoint identifier, unique in the scope of the debuggee.
3226      "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.
3229    },
3230  }</pre>
3231</div>
3232
3233</body></html>