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