blob: 66f4be045afb62feb9d97b8f2d4995e54a86f8fd [file] [log] [blame]
Takashi Matsuo06694102015-09-11 13:55:40 -07001<html><body>
2<style>
3
4body, h1, h2, h3, div, span, p, pre, a {
5 margin: 0;
6 padding: 0;
7 border: 0;
8 font-weight: inherit;
9 font-style: inherit;
10 font-size: 100%;
11 font-family: inherit;
12 vertical-align: baseline;
13}
14
15body {
16 font-size: 13px;
17 padding: 1em;
18}
19
20h1 {
21 font-size: 26px;
22 margin-bottom: 1em;
23}
24
25h2 {
26 font-size: 24px;
27 margin-bottom: 1em;
28}
29
30h3 {
31 font-size: 20px;
32 margin-bottom: 1em;
33 margin-top: 1em;
34}
35
36pre, code {
37 line-height: 1.5;
38 font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
39}
40
41pre {
42 margin-top: 0.5em;
43}
44
45h1, h2, h3, p {
46 font-family: Arial, sans serif;
47}
48
49h1, h2, h3 {
50 border-bottom: solid #CCC 1px;
51}
52
53.toc_element {
54 margin-top: 0.5em;
55}
56
57.firstline {
58 margin-left: 2 em;
59}
60
61.method {
62 margin-top: 1em;
63 border: solid 1px #CCC;
64 padding: 1em;
65 background: #EEE;
66}
67
68.details {
69 font-weight: bold;
70 font-size: 14px;
71}
72
73</style>
74
Dan O'Mearadd494642020-05-01 07:42:23 -070075<h1><a href="clouddebugger_v2.html">Cloud Debugger API</a> . <a href="clouddebugger_v2.debugger.html">debugger</a> . <a href="clouddebugger_v2.debugger.debuggees.html">debuggees</a> . <a href="clouddebugger_v2.debugger.debuggees.breakpoints.html">breakpoints</a></h1>
Takashi Matsuo06694102015-09-11 13:55:40 -070076<h2>Instance Methods</h2>
77<p class="toc_element">
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -070078 <code><a href="#delete">delete(debuggeeId, breakpointId, clientVersion=None, x__xgafv=None)</a></code></p>
Takashi Matsuo06694102015-09-11 13:55:40 -070079<p class="firstline">Deletes the breakpoint from the debuggee.</p>
80<p class="toc_element">
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -070081 <code><a href="#get">get(debuggeeId, breakpointId, clientVersion=None, x__xgafv=None)</a></code></p>
Takashi Matsuo06694102015-09-11 13:55:40 -070082<p class="firstline">Gets breakpoint information.</p>
83<p class="toc_element">
Bu Sun Kim65020912020-05-20 12:08:20 -070084 <code><a href="#list">list(debuggeeId, waitToken=None, clientVersion=None, action_value=None, includeInactive=None, includeAllUsers=None, stripResults=None, x__xgafv=None)</a></code></p>
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -080085<p class="firstline">Lists all breakpoints for the debuggee.</p>
Takashi Matsuo06694102015-09-11 13:55:40 -070086<p class="toc_element">
Bu Sun Kim65020912020-05-20 12:08:20 -070087 <code><a href="#set">set(debuggeeId, body=None, canaryOption=None, clientVersion=None, x__xgafv=None)</a></code></p>
Takashi Matsuo06694102015-09-11 13:55:40 -070088<p class="firstline">Sets the breakpoint to the debuggee.</p>
89<h3>Method Details</h3>
90<div class="method">
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -070091 <code class="details" id="delete">delete(debuggeeId, breakpointId, clientVersion=None, x__xgafv=None)</code>
Takashi Matsuo06694102015-09-11 13:55:40 -070092 <pre>Deletes the breakpoint from the debuggee.
93
94Args:
Dan O'Mearadd494642020-05-01 07:42:23 -070095 debuggeeId: string, Required. ID of the debuggee whose breakpoint to delete. (required)
96 breakpointId: string, Required. ID of the breakpoint to delete. (required)
97 clientVersion: string, Required. The client version making the call.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -070098Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
Takashi Matsuo06694102015-09-11 13:55:40 -070099 x__xgafv: string, V1 error format.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400100 Allowed values
101 1 - v1 error format
102 2 - v2 error format
Takashi Matsuo06694102015-09-11 13:55:40 -0700103
104Returns:
105 An object of the form:
106
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400107 { # A generic empty message that you can re-use to avoid defining duplicated
108 # empty messages in your APIs. A typical example is to use it as the request
109 # or the response type of an API method. For instance:
110 #
111 # service Foo {
112 # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
113 # }
114 #
115 # The JSON representation for `Empty` is empty JSON object `{}`.
Takashi Matsuo06694102015-09-11 13:55:40 -0700116 }</pre>
117</div>
118
119<div class="method">
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -0700120 <code class="details" id="get">get(debuggeeId, breakpointId, clientVersion=None, x__xgafv=None)</code>
Takashi Matsuo06694102015-09-11 13:55:40 -0700121 <pre>Gets breakpoint information.
122
123Args:
Dan O'Mearadd494642020-05-01 07:42:23 -0700124 debuggeeId: string, Required. ID of the debuggee whose breakpoint to get. (required)
125 breakpointId: string, Required. ID of the breakpoint to get. (required)
126 clientVersion: string, Required. The client version making the call.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700127Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
Takashi Matsuo06694102015-09-11 13:55:40 -0700128 x__xgafv: string, V1 error format.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400129 Allowed values
130 1 - v1 error format
131 2 - v2 error format
Takashi Matsuo06694102015-09-11 13:55:40 -0700132
133Returns:
134 An object of the form:
135
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800136 { # Response for getting breakpoint information.
Bu Sun Kim65020912020-05-20 12:08:20 -0700137 &quot;breakpoint&quot;: { # ------------------------------------------------------------------------------ # Complete breakpoint state.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400138 # The fields `id` and `location` are guaranteed to be set.
Dan O'Mearadd494642020-05-01 07:42:23 -0700139 # ## Breakpoint (the resource)
140 #
141 # Represents the breakpoint specification, status and results.
Bu Sun Kim65020912020-05-20 12:08:20 -0700142 &quot;canaryExpireTime&quot;: &quot;A String&quot;, # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
143 # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
144 &quot;status&quot;: { # Represents a contextual status message. # Breakpoint status.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400145 #
146 # The status includes an error flag and a human readable message.
147 # This field is usually unset. The message can be either
148 # informational or an error message. Regardless, clients should always
149 # display the text message back to the user.
150 #
151 # Error status indicates complete failure of the breakpoint.
152 #
153 # Example (non-final state): `Still loading symbols...`
154 #
155 # Examples (final state):
156 #
157 # * `Invalid line number` referring to location
158 # * `Field f not found in class C` referring to condition
159 # The message can indicate an error or informational status, and refer to
160 # specific parts of the containing object.
161 # For example, the `Breakpoint.status` field can indicate an error referring
162 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700163 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
164 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
165 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
166 &quot;A String&quot;,
Takashi Matsuo06694102015-09-11 13:55:40 -0700167 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700168 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400169 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
170 # character.
171 #
172 # Examples:
173 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700174 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400175 # is loaded. Again, $0 is very important.`
176 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -0700177 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700178 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -0700179 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700180 &quot;state&quot;: &quot;A String&quot;, # The current state of the breakpoint.
181 &quot;userEmail&quot;: &quot;A String&quot;, # E-mail address of the user that created this breakpoint
182 &quot;action&quot;: &quot;A String&quot;, # Action that the agent should perform when the code at the
183 # breakpoint location is hit.
184 &quot;logLevel&quot;: &quot;A String&quot;, # Indicates the severity of the log. Only relevant when action is `LOG`.
185 &quot;id&quot;: &quot;A String&quot;, # Breakpoint identifier, unique in the scope of the debuggee.
186 &quot;location&quot;: { # Represents a location in the source code. # Breakpoint source location.
187 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
188 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
189 # Agents that do not support setting breakpoints on specific columns ignore
190 # this field.
191 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
192 },
193 &quot;finalTime&quot;: &quot;A String&quot;, # Time this breakpoint was finalized as seen by the server in seconds
194 # resolution.
195 &quot;variableTable&quot;: [ # The `variable_table` exists to aid with computation, memory and network
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400196 # traffic optimization. It enables storing a variable once and reference
197 # it from multiple variables, including variables stored in the
198 # `variable_table` itself.
199 # For example, the same `this` object, which may appear at many levels of
200 # the stack, can have all of its data stored once in this table. The
201 # stack frame variables then would hold only a reference to it.
202 #
203 # The variable `var_table_index` field is an index into this repeated field.
204 # The stored objects are nameless and get their name from the referencing
205 # variable. The effective variable is a merge of the referencing variable
206 # and the referenced variable.
207 { # Represents a variable or an argument possibly of a compound object type.
208 # Note how the following variables are represented:
209 #
210 # 1) A simple variable:
211 #
212 # int x = 5
213 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700214 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400215 #
216 # 2) A compound object:
217 #
218 # struct T {
219 # int m1;
220 # int m2;
221 # };
222 # T x = { 3, 7 };
223 #
224 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700225 # name: &quot;x&quot;,
226 # type: &quot;T&quot;,
227 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
228 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400229 # }
230 #
231 # 3) A pointer where the pointee was captured:
232 #
233 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -0700234 # T* p = &amp;x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400235 #
236 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700237 # name: &quot;p&quot;,
238 # type: &quot;T*&quot;,
239 # value: &quot;0x00500500&quot;,
240 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
241 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400242 # }
243 #
244 # 4) A pointer where the pointee was not captured:
245 #
246 # T* p = new T;
247 #
248 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700249 # name: &quot;p&quot;,
250 # type: &quot;T*&quot;,
251 # value: &quot;0x00400400&quot;
252 # status { is_error: true, description { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400253 # }
254 #
255 # The status should describe the reason for the missing value,
Dan O'Mearadd494642020-05-01 07:42:23 -0700256 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400257 #
258 # Note that a null pointer should not have members.
259 #
260 # 5) An unnamed value:
261 #
262 # int* p = new int(7);
263 #
264 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700265 # name: &quot;p&quot;,
266 # value: &quot;0x00500500&quot;,
267 # type: &quot;int*&quot;,
268 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400269 #
270 # 6) An unnamed pointer where the pointee was not captured:
271 #
272 # int* p = new int(7);
Dan O'Mearadd494642020-05-01 07:42:23 -0700273 # int** pp = &amp;p;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400274 #
275 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700276 # name: &quot;pp&quot;,
277 # value: &quot;0x00500500&quot;,
278 # type: &quot;int**&quot;,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400279 # members {
Bu Sun Kim65020912020-05-20 12:08:20 -0700280 # value: &quot;0x00400400&quot;,
281 # type: &quot;int*&quot;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400282 # status {
283 # is_error: true,
Bu Sun Kim65020912020-05-20 12:08:20 -0700284 # description: { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400285 # }
286 # }
287 # }
288 #
289 # To optimize computation, memory and network traffic, variables that
290 # repeat in the output multiple times can be stored once in a shared
291 # variable table and be referenced using the `var_table_index` field. The
292 # variables stored in the shared table are nameless and are essentially
293 # a partition of the complete variable. To reconstruct the complete
294 # variable, merge the referencing variable with the referenced variable.
295 #
296 # When using the shared variable table, the following variables:
297 #
298 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -0700299 # T* p = &amp;x;
300 # T&amp; r = x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400301 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700302 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
303 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
304 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400305 #
306 # { // Shared variable table entry #3:
Bu Sun Kim65020912020-05-20 12:08:20 -0700307 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
308 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400309 # }
310 #
311 # Note that the pointer address is stored with the referencing variable
312 # and not with the referenced variable. This allows the referenced variable
313 # to be shared between pointers and references.
314 #
315 # The type field is optional. The debugger agent may or may not support it.
Bu Sun Kim65020912020-05-20 12:08:20 -0700316 &quot;members&quot;: [ # Members contained or pointed to by the variable.
317 # Object with schema name: Variable
318 ],
319 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400320 # unset. A status of a single variable only applies to that variable or
321 # expression. The rest of breakpoint data still remains valid. Variables
322 # might be reported in error state even when breakpoint is not in final
323 # state.
324 #
325 # The message may refer to variable name with `refers_to` set to
326 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
327 # In either case variable value and members will be unset.
328 #
329 # Example of error message applied to name: `Invalid expression syntax`.
330 #
331 # Example of information message applied to value: `Not captured`.
332 #
333 # Examples of error message applied to value:
334 #
335 # * `Malformed string`,
336 # * `Field f not found in class C`
337 # * `Null pointer dereference`
338 # The message can indicate an error or informational status, and refer to
339 # specific parts of the containing object.
340 # For example, the `Breakpoint.status` field can indicate an error referring
341 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700342 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
343 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
344 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
345 &quot;A String&quot;,
Takashi Matsuo06694102015-09-11 13:55:40 -0700346 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700347 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400348 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
349 # character.
350 #
351 # Examples:
352 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700353 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400354 # is loaded. Again, $0 is very important.`
355 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -0700356 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700357 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -0700358 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700359 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
360 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400361 # `var_table_index`, `type` goes next to `value`. The interpretation of
362 # a type is agent specific. It is recommended to include the dynamic type
363 # rather than a static type of an object.
Bu Sun Kim65020912020-05-20 12:08:20 -0700364 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
365 # one variable can reference the same variable in the table. The
366 # `var_table_index` field is an index into `variable_table` in Breakpoint.
367 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
Takashi Matsuo06694102015-09-11 13:55:40 -0700368 },
369 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700370 &quot;createTime&quot;: &quot;A String&quot;, # Time this breakpoint was created by the server in seconds resolution.
371 &quot;logMessageFormat&quot;: &quot;A String&quot;, # Only relevant when action is `LOG`. Defines the message to log when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700372 # the breakpoint hits. The message may include parameter placeholders `$0`,
373 # `$1`, etc. These placeholders are replaced with the evaluated value
374 # of the appropriate expression. Expressions not referenced in
375 # `log_message_format` are not logged.
376 #
377 # Example: `Message received, id = $0, count = $1` with
378 # `expressions` = `[ message.id, message.count ]`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700379 &quot;labels&quot;: { # A set of custom breakpoint properties, populated by the agent, to be
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400380 # displayed to the user.
Bu Sun Kim65020912020-05-20 12:08:20 -0700381 &quot;a_key&quot;: &quot;A String&quot;,
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -0700382 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700383 &quot;expressions&quot;: [ # List of read-only expressions to evaluate at the breakpoint location.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700384 # The expressions are composed using expressions in the programming language
385 # at the source location. If the breakpoint action is `LOG`, the evaluated
386 # expressions are included in log statements.
Bu Sun Kim65020912020-05-20 12:08:20 -0700387 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700388 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700389 &quot;evaluatedExpressions&quot;: [ # Values of evaluated expressions at breakpoint time.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400390 # The evaluated expressions appear in exactly the same order they
391 # are listed in the `expressions` field.
392 # The `name` field holds the original expression text, the `value` or
393 # `members` field holds the result of the evaluated expression.
394 # If the expression cannot be evaluated, the `status` inside the `Variable`
395 # will indicate an error and contain the error text.
396 { # Represents a variable or an argument possibly of a compound object type.
397 # Note how the following variables are represented:
398 #
399 # 1) A simple variable:
400 #
401 # int x = 5
402 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700403 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400404 #
405 # 2) A compound object:
406 #
407 # struct T {
408 # int m1;
409 # int m2;
410 # };
411 # T x = { 3, 7 };
412 #
413 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700414 # name: &quot;x&quot;,
415 # type: &quot;T&quot;,
416 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
417 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400418 # }
419 #
420 # 3) A pointer where the pointee was captured:
421 #
422 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -0700423 # T* p = &amp;x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400424 #
425 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700426 # name: &quot;p&quot;,
427 # type: &quot;T*&quot;,
428 # value: &quot;0x00500500&quot;,
429 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
430 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400431 # }
432 #
433 # 4) A pointer where the pointee was not captured:
434 #
435 # T* p = new T;
436 #
437 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700438 # name: &quot;p&quot;,
439 # type: &quot;T*&quot;,
440 # value: &quot;0x00400400&quot;
441 # status { is_error: true, description { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400442 # }
443 #
444 # The status should describe the reason for the missing value,
Dan O'Mearadd494642020-05-01 07:42:23 -0700445 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400446 #
447 # Note that a null pointer should not have members.
448 #
449 # 5) An unnamed value:
450 #
451 # int* p = new int(7);
452 #
453 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700454 # name: &quot;p&quot;,
455 # value: &quot;0x00500500&quot;,
456 # type: &quot;int*&quot;,
457 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400458 #
459 # 6) An unnamed pointer where the pointee was not captured:
460 #
461 # int* p = new int(7);
Dan O'Mearadd494642020-05-01 07:42:23 -0700462 # int** pp = &amp;p;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400463 #
464 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -0700465 # name: &quot;pp&quot;,
466 # value: &quot;0x00500500&quot;,
467 # type: &quot;int**&quot;,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400468 # members {
Bu Sun Kim65020912020-05-20 12:08:20 -0700469 # value: &quot;0x00400400&quot;,
470 # type: &quot;int*&quot;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400471 # status {
472 # is_error: true,
Bu Sun Kim65020912020-05-20 12:08:20 -0700473 # description: { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400474 # }
475 # }
476 # }
477 #
478 # To optimize computation, memory and network traffic, variables that
479 # repeat in the output multiple times can be stored once in a shared
480 # variable table and be referenced using the `var_table_index` field. The
481 # variables stored in the shared table are nameless and are essentially
482 # a partition of the complete variable. To reconstruct the complete
483 # variable, merge the referencing variable with the referenced variable.
484 #
485 # When using the shared variable table, the following variables:
486 #
487 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -0700488 # T* p = &amp;x;
489 # T&amp; r = x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400490 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700491 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
492 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
493 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400494 #
495 # { // Shared variable table entry #3:
Bu Sun Kim65020912020-05-20 12:08:20 -0700496 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
497 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400498 # }
499 #
500 # Note that the pointer address is stored with the referencing variable
501 # and not with the referenced variable. This allows the referenced variable
502 # to be shared between pointers and references.
503 #
504 # The type field is optional. The debugger agent may or may not support it.
Bu Sun Kim65020912020-05-20 12:08:20 -0700505 &quot;members&quot;: [ # Members contained or pointed to by the variable.
506 # Object with schema name: Variable
507 ],
508 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400509 # unset. A status of a single variable only applies to that variable or
510 # expression. The rest of breakpoint data still remains valid. Variables
511 # might be reported in error state even when breakpoint is not in final
512 # state.
513 #
514 # The message may refer to variable name with `refers_to` set to
515 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
516 # In either case variable value and members will be unset.
517 #
518 # Example of error message applied to name: `Invalid expression syntax`.
519 #
520 # Example of information message applied to value: `Not captured`.
521 #
522 # Examples of error message applied to value:
523 #
524 # * `Malformed string`,
525 # * `Field f not found in class C`
526 # * `Null pointer dereference`
527 # The message can indicate an error or informational status, and refer to
528 # specific parts of the containing object.
529 # For example, the `Breakpoint.status` field can indicate an error referring
530 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700531 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
532 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
533 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
534 &quot;A String&quot;,
Takashi Matsuo06694102015-09-11 13:55:40 -0700535 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700536 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400537 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
538 # character.
539 #
540 # Examples:
541 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700542 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400543 # is loaded. Again, $0 is very important.`
544 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -0700545 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700546 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -0700547 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700548 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
549 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400550 # `var_table_index`, `type` goes next to `value`. The interpretation of
551 # a type is agent specific. It is recommended to include the dynamic type
552 # rather than a static type of an object.
Bu Sun Kim65020912020-05-20 12:08:20 -0700553 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
554 # one variable can reference the same variable in the table. The
555 # `var_table_index` field is an index into `variable_table` in Breakpoint.
556 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
Takashi Matsuo06694102015-09-11 13:55:40 -0700557 },
558 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700559 &quot;isFinalState&quot;: True or False, # When true, indicates that this is a final result and the
560 # breakpoint state will not change from here on.
561 &quot;stackFrames&quot;: [ # The stack at breakpoint time, where stack_frames[0] represents the most
562 # recently entered function.
563 { # Represents a stack frame context.
564 &quot;arguments&quot;: [ # Set of arguments passed to this function.
565 # Note that this might not be populated for all stack frames.
566 { # Represents a variable or an argument possibly of a compound object type.
567 # Note how the following variables are represented:
568 #
569 # 1) A simple variable:
570 #
571 # int x = 5
572 #
573 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
574 #
575 # 2) A compound object:
576 #
577 # struct T {
578 # int m1;
579 # int m2;
580 # };
581 # T x = { 3, 7 };
582 #
583 # { // Captured variable
584 # name: &quot;x&quot;,
585 # type: &quot;T&quot;,
586 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
587 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
588 # }
589 #
590 # 3) A pointer where the pointee was captured:
591 #
592 # T x = { 3, 7 };
593 # T* p = &amp;x;
594 #
595 # { // Captured variable
596 # name: &quot;p&quot;,
597 # type: &quot;T*&quot;,
598 # value: &quot;0x00500500&quot;,
599 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
600 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
601 # }
602 #
603 # 4) A pointer where the pointee was not captured:
604 #
605 # T* p = new T;
606 #
607 # { // Captured variable
608 # name: &quot;p&quot;,
609 # type: &quot;T*&quot;,
610 # value: &quot;0x00400400&quot;
611 # status { is_error: true, description { format: &quot;unavailable&quot; } }
612 # }
613 #
614 # The status should describe the reason for the missing value,
615 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
616 #
617 # Note that a null pointer should not have members.
618 #
619 # 5) An unnamed value:
620 #
621 # int* p = new int(7);
622 #
623 # { // Captured variable
624 # name: &quot;p&quot;,
625 # value: &quot;0x00500500&quot;,
626 # type: &quot;int*&quot;,
627 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
628 #
629 # 6) An unnamed pointer where the pointee was not captured:
630 #
631 # int* p = new int(7);
632 # int** pp = &amp;p;
633 #
634 # { // Captured variable
635 # name: &quot;pp&quot;,
636 # value: &quot;0x00500500&quot;,
637 # type: &quot;int**&quot;,
638 # members {
639 # value: &quot;0x00400400&quot;,
640 # type: &quot;int*&quot;
641 # status {
642 # is_error: true,
643 # description: { format: &quot;unavailable&quot; } }
644 # }
645 # }
646 # }
647 #
648 # To optimize computation, memory and network traffic, variables that
649 # repeat in the output multiple times can be stored once in a shared
650 # variable table and be referenced using the `var_table_index` field. The
651 # variables stored in the shared table are nameless and are essentially
652 # a partition of the complete variable. To reconstruct the complete
653 # variable, merge the referencing variable with the referenced variable.
654 #
655 # When using the shared variable table, the following variables:
656 #
657 # T x = { 3, 7 };
658 # T* p = &amp;x;
659 # T&amp; r = x;
660 #
661 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
662 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
663 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
664 #
665 # { // Shared variable table entry #3:
666 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
667 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
668 # }
669 #
670 # Note that the pointer address is stored with the referencing variable
671 # and not with the referenced variable. This allows the referenced variable
672 # to be shared between pointers and references.
673 #
674 # The type field is optional. The debugger agent may or may not support it.
675 &quot;members&quot;: [ # Members contained or pointed to by the variable.
676 # Object with schema name: Variable
677 ],
678 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
679 # unset. A status of a single variable only applies to that variable or
680 # expression. The rest of breakpoint data still remains valid. Variables
681 # might be reported in error state even when breakpoint is not in final
682 # state.
683 #
684 # The message may refer to variable name with `refers_to` set to
685 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
686 # In either case variable value and members will be unset.
687 #
688 # Example of error message applied to name: `Invalid expression syntax`.
689 #
690 # Example of information message applied to value: `Not captured`.
691 #
692 # Examples of error message applied to value:
693 #
694 # * `Malformed string`,
695 # * `Field f not found in class C`
696 # * `Null pointer dereference`
697 # The message can indicate an error or informational status, and refer to
698 # specific parts of the containing object.
699 # For example, the `Breakpoint.status` field can indicate an error referring
700 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
701 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
702 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
703 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
704 &quot;A String&quot;,
705 ],
706 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
707 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
708 # character.
709 #
710 # Examples:
711 #
712 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
713 # is loaded. Again, $0 is very important.`
714 # * `Please pay $$10 to use $0 instead of $1.`
715 },
716 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
717 },
718 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
719 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
720 # `var_table_index`, `type` goes next to `value`. The interpretation of
721 # a type is agent specific. It is recommended to include the dynamic type
722 # rather than a static type of an object.
723 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
724 # one variable can reference the same variable in the table. The
725 # `var_table_index` field is an index into `variable_table` in Breakpoint.
726 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
727 },
728 ],
729 &quot;locals&quot;: [ # Set of local variables at the stack frame location.
730 # Note that this might not be populated for all stack frames.
731 { # Represents a variable or an argument possibly of a compound object type.
732 # Note how the following variables are represented:
733 #
734 # 1) A simple variable:
735 #
736 # int x = 5
737 #
738 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
739 #
740 # 2) A compound object:
741 #
742 # struct T {
743 # int m1;
744 # int m2;
745 # };
746 # T x = { 3, 7 };
747 #
748 # { // Captured variable
749 # name: &quot;x&quot;,
750 # type: &quot;T&quot;,
751 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
752 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
753 # }
754 #
755 # 3) A pointer where the pointee was captured:
756 #
757 # T x = { 3, 7 };
758 # T* p = &amp;x;
759 #
760 # { // Captured variable
761 # name: &quot;p&quot;,
762 # type: &quot;T*&quot;,
763 # value: &quot;0x00500500&quot;,
764 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
765 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
766 # }
767 #
768 # 4) A pointer where the pointee was not captured:
769 #
770 # T* p = new T;
771 #
772 # { // Captured variable
773 # name: &quot;p&quot;,
774 # type: &quot;T*&quot;,
775 # value: &quot;0x00400400&quot;
776 # status { is_error: true, description { format: &quot;unavailable&quot; } }
777 # }
778 #
779 # The status should describe the reason for the missing value,
780 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
781 #
782 # Note that a null pointer should not have members.
783 #
784 # 5) An unnamed value:
785 #
786 # int* p = new int(7);
787 #
788 # { // Captured variable
789 # name: &quot;p&quot;,
790 # value: &quot;0x00500500&quot;,
791 # type: &quot;int*&quot;,
792 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
793 #
794 # 6) An unnamed pointer where the pointee was not captured:
795 #
796 # int* p = new int(7);
797 # int** pp = &amp;p;
798 #
799 # { // Captured variable
800 # name: &quot;pp&quot;,
801 # value: &quot;0x00500500&quot;,
802 # type: &quot;int**&quot;,
803 # members {
804 # value: &quot;0x00400400&quot;,
805 # type: &quot;int*&quot;
806 # status {
807 # is_error: true,
808 # description: { format: &quot;unavailable&quot; } }
809 # }
810 # }
811 # }
812 #
813 # To optimize computation, memory and network traffic, variables that
814 # repeat in the output multiple times can be stored once in a shared
815 # variable table and be referenced using the `var_table_index` field. The
816 # variables stored in the shared table are nameless and are essentially
817 # a partition of the complete variable. To reconstruct the complete
818 # variable, merge the referencing variable with the referenced variable.
819 #
820 # When using the shared variable table, the following variables:
821 #
822 # T x = { 3, 7 };
823 # T* p = &amp;x;
824 # T&amp; r = x;
825 #
826 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
827 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
828 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
829 #
830 # { // Shared variable table entry #3:
831 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
832 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
833 # }
834 #
835 # Note that the pointer address is stored with the referencing variable
836 # and not with the referenced variable. This allows the referenced variable
837 # to be shared between pointers and references.
838 #
839 # The type field is optional. The debugger agent may or may not support it.
840 &quot;members&quot;: [ # Members contained or pointed to by the variable.
841 # Object with schema name: Variable
842 ],
843 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
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 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
867 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
868 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
869 &quot;A String&quot;,
870 ],
871 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
872 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
873 # character.
874 #
875 # Examples:
876 #
877 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
878 # is loaded. Again, $0 is very important.`
879 # * `Please pay $$10 to use $0 instead of $1.`
880 },
881 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
882 },
883 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
884 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
885 # `var_table_index`, `type` goes next to `value`. The interpretation of
886 # a type is agent specific. It is recommended to include the dynamic type
887 # rather than a static type of an object.
888 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
889 # one variable can reference the same variable in the table. The
890 # `var_table_index` field is an index into `variable_table` in Breakpoint.
891 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
892 },
893 ],
894 &quot;location&quot;: { # Represents a location in the source code. # Source location of the call site.
895 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
896 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
897 # Agents that do not support setting breakpoints on specific columns ignore
898 # this field.
899 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
900 },
901 &quot;function&quot;: &quot;A String&quot;, # Demangled function name at the call site.
902 },
903 ],
904 &quot;condition&quot;: &quot;A String&quot;, # Condition that triggers the breakpoint.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400905 # The condition is a compound boolean expression composed using expressions
906 # in a programming language at the source location.
Takashi Matsuo06694102015-09-11 13:55:40 -0700907 },
908 }</pre>
909</div>
910
911<div class="method">
Bu Sun Kim65020912020-05-20 12:08:20 -0700912 <code class="details" id="list">list(debuggeeId, waitToken=None, clientVersion=None, action_value=None, includeInactive=None, includeAllUsers=None, stripResults=None, x__xgafv=None)</code>
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800913 <pre>Lists all breakpoints for the debuggee.
Takashi Matsuo06694102015-09-11 13:55:40 -0700914
915Args:
Dan O'Mearadd494642020-05-01 07:42:23 -0700916 debuggeeId: string, Required. ID of the debuggee whose breakpoints to list. (required)
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400917 waitToken: string, A wait token that, if specified, blocks the call until the breakpoints
918list has changed, or a server selected timeout has expired. The value
919should be set from the last response. The error code
920`google.rpc.Code.ABORTED` (RPC) is returned on wait timeout, which
921should be called again with the same `wait_token`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700922 clientVersion: string, Required. The client version making the call.
923Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
924 action_value: string, Only breakpoints with the specified action will pass the filter.
925 includeInactive: boolean, When set to `true`, the response includes active and inactive
926breakpoints. Otherwise, it includes only active breakpoints.
927 includeAllUsers: boolean, When set to `true`, the response includes the list of breakpoints set by
928any user. Otherwise, it includes only breakpoints set by the caller.
929 stripResults: boolean, This field is deprecated. The following fields are always stripped out of
930the result: `stack_frames`, `evaluated_expressions` and `variable_table`.
931 x__xgafv: string, V1 error format.
932 Allowed values
933 1 - v1 error format
934 2 - v2 error format
Takashi Matsuo06694102015-09-11 13:55:40 -0700935
936Returns:
937 An object of the form:
938
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -0800939 { # Response for listing breakpoints.
Bu Sun Kim65020912020-05-20 12:08:20 -0700940 &quot;nextWaitToken&quot;: &quot;A String&quot;, # A wait token that can be used in the next call to `list` (REST) or
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400941 # `ListBreakpoints` (RPC) to block until the list of breakpoints has changes.
Bu Sun Kim65020912020-05-20 12:08:20 -0700942 &quot;breakpoints&quot;: [ # List of breakpoints matching the request.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400943 # The fields `id` and `location` are guaranteed to be set on each breakpoint.
944 # The fields: `stack_frames`, `evaluated_expressions` and `variable_table`
Bu Sun Kim715bd7f2019-06-14 16:50:42 -0700945 # are cleared on each breakpoint regardless of its status.
Dan O'Mearadd494642020-05-01 07:42:23 -0700946 { # ------------------------------------------------------------------------------
947 # ## Breakpoint (the resource)
948 #
949 # Represents the breakpoint specification, status and results.
Bu Sun Kim65020912020-05-20 12:08:20 -0700950 &quot;canaryExpireTime&quot;: &quot;A String&quot;, # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
951 # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
952 &quot;status&quot;: { # Represents a contextual status message. # Breakpoint status.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400953 #
954 # The status includes an error flag and a human readable message.
955 # This field is usually unset. The message can be either
956 # informational or an error message. Regardless, clients should always
957 # display the text message back to the user.
958 #
959 # Error status indicates complete failure of the breakpoint.
960 #
961 # Example (non-final state): `Still loading symbols...`
962 #
963 # Examples (final state):
964 #
965 # * `Invalid line number` referring to location
966 # * `Field f not found in class C` referring to condition
967 # The message can indicate an error or informational status, and refer to
968 # specific parts of the containing object.
969 # For example, the `Breakpoint.status` field can indicate an error referring
970 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -0700971 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
972 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
973 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
974 &quot;A String&quot;,
Takashi Matsuo06694102015-09-11 13:55:40 -0700975 ],
Bu Sun Kim65020912020-05-20 12:08:20 -0700976 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400977 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
978 # character.
979 #
980 # Examples:
981 #
Bu Sun Kim65020912020-05-20 12:08:20 -0700982 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -0400983 # is loaded. Again, $0 is very important.`
984 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -0700985 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700986 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -0700987 },
Bu Sun Kim65020912020-05-20 12:08:20 -0700988 &quot;state&quot;: &quot;A String&quot;, # The current state of the breakpoint.
989 &quot;userEmail&quot;: &quot;A String&quot;, # E-mail address of the user that created this breakpoint
990 &quot;action&quot;: &quot;A String&quot;, # Action that the agent should perform when the code at the
991 # breakpoint location is hit.
992 &quot;logLevel&quot;: &quot;A String&quot;, # Indicates the severity of the log. Only relevant when action is `LOG`.
993 &quot;id&quot;: &quot;A String&quot;, # Breakpoint identifier, unique in the scope of the debuggee.
994 &quot;location&quot;: { # Represents a location in the source code. # Breakpoint source location.
995 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
996 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
997 # Agents that do not support setting breakpoints on specific columns ignore
998 # this field.
999 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
1000 },
1001 &quot;finalTime&quot;: &quot;A String&quot;, # Time this breakpoint was finalized as seen by the server in seconds
1002 # resolution.
1003 &quot;variableTable&quot;: [ # The `variable_table` exists to aid with computation, memory and network
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001004 # traffic optimization. It enables storing a variable once and reference
1005 # it from multiple variables, including variables stored in the
1006 # `variable_table` itself.
1007 # For example, the same `this` object, which may appear at many levels of
1008 # the stack, can have all of its data stored once in this table. The
1009 # stack frame variables then would hold only a reference to it.
1010 #
1011 # The variable `var_table_index` field is an index into this repeated field.
1012 # The stored objects are nameless and get their name from the referencing
1013 # variable. The effective variable is a merge of the referencing variable
1014 # and the referenced variable.
1015 { # Represents a variable or an argument possibly of a compound object type.
1016 # Note how the following variables are represented:
1017 #
1018 # 1) A simple variable:
1019 #
1020 # int x = 5
1021 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001022 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001023 #
1024 # 2) A compound object:
1025 #
1026 # struct T {
1027 # int m1;
1028 # int m2;
1029 # };
1030 # T x = { 3, 7 };
1031 #
1032 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001033 # name: &quot;x&quot;,
1034 # type: &quot;T&quot;,
1035 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1036 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001037 # }
1038 #
1039 # 3) A pointer where the pointee was captured:
1040 #
1041 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07001042 # T* p = &amp;x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001043 #
1044 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001045 # name: &quot;p&quot;,
1046 # type: &quot;T*&quot;,
1047 # value: &quot;0x00500500&quot;,
1048 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1049 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001050 # }
1051 #
1052 # 4) A pointer where the pointee was not captured:
1053 #
1054 # T* p = new T;
1055 #
1056 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001057 # name: &quot;p&quot;,
1058 # type: &quot;T*&quot;,
1059 # value: &quot;0x00400400&quot;
1060 # status { is_error: true, description { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001061 # }
1062 #
1063 # The status should describe the reason for the missing value,
Dan O'Mearadd494642020-05-01 07:42:23 -07001064 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001065 #
1066 # Note that a null pointer should not have members.
1067 #
1068 # 5) An unnamed value:
1069 #
1070 # int* p = new int(7);
1071 #
1072 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001073 # name: &quot;p&quot;,
1074 # value: &quot;0x00500500&quot;,
1075 # type: &quot;int*&quot;,
1076 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001077 #
1078 # 6) An unnamed pointer where the pointee was not captured:
1079 #
1080 # int* p = new int(7);
Dan O'Mearadd494642020-05-01 07:42:23 -07001081 # int** pp = &amp;p;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001082 #
1083 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001084 # name: &quot;pp&quot;,
1085 # value: &quot;0x00500500&quot;,
1086 # type: &quot;int**&quot;,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001087 # members {
Bu Sun Kim65020912020-05-20 12:08:20 -07001088 # value: &quot;0x00400400&quot;,
1089 # type: &quot;int*&quot;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001090 # status {
1091 # is_error: true,
Bu Sun Kim65020912020-05-20 12:08:20 -07001092 # description: { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001093 # }
1094 # }
1095 # }
1096 #
1097 # To optimize computation, memory and network traffic, variables that
1098 # repeat in the output multiple times can be stored once in a shared
1099 # variable table and be referenced using the `var_table_index` field. The
1100 # variables stored in the shared table are nameless and are essentially
1101 # a partition of the complete variable. To reconstruct the complete
1102 # variable, merge the referencing variable with the referenced variable.
1103 #
1104 # When using the shared variable table, the following variables:
1105 #
1106 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07001107 # T* p = &amp;x;
1108 # T&amp; r = x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001109 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001110 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
1111 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
1112 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001113 #
1114 # { // Shared variable table entry #3:
Bu Sun Kim65020912020-05-20 12:08:20 -07001115 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1116 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001117 # }
1118 #
1119 # Note that the pointer address is stored with the referencing variable
1120 # and not with the referenced variable. This allows the referenced variable
1121 # to be shared between pointers and references.
1122 #
1123 # The type field is optional. The debugger agent may or may not support it.
Bu Sun Kim65020912020-05-20 12:08:20 -07001124 &quot;members&quot;: [ # Members contained or pointed to by the variable.
1125 # Object with schema name: Variable
1126 ],
1127 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001128 # unset. A status of a single variable only applies to that variable or
1129 # expression. The rest of breakpoint data still remains valid. Variables
1130 # might be reported in error state even when breakpoint is not in final
1131 # state.
1132 #
1133 # The message may refer to variable name with `refers_to` set to
1134 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1135 # In either case variable value and members will be unset.
1136 #
1137 # Example of error message applied to name: `Invalid expression syntax`.
1138 #
1139 # Example of information message applied to value: `Not captured`.
1140 #
1141 # Examples of error message applied to value:
1142 #
1143 # * `Malformed string`,
1144 # * `Field f not found in class C`
1145 # * `Null pointer dereference`
1146 # The message can indicate an error or informational status, and refer to
1147 # specific parts of the containing object.
1148 # For example, the `Breakpoint.status` field can indicate an error referring
1149 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001150 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
1151 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
1152 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
1153 &quot;A String&quot;,
Takashi Matsuo06694102015-09-11 13:55:40 -07001154 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001155 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001156 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1157 # character.
1158 #
1159 # Examples:
1160 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001161 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001162 # is loaded. Again, $0 is very important.`
1163 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07001164 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001165 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07001166 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001167 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
1168 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001169 # `var_table_index`, `type` goes next to `value`. The interpretation of
1170 # a type is agent specific. It is recommended to include the dynamic type
1171 # rather than a static type of an object.
Bu Sun Kim65020912020-05-20 12:08:20 -07001172 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
1173 # one variable can reference the same variable in the table. The
1174 # `var_table_index` field is an index into `variable_table` in Breakpoint.
1175 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
Takashi Matsuo06694102015-09-11 13:55:40 -07001176 },
1177 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001178 &quot;createTime&quot;: &quot;A String&quot;, # Time this breakpoint was created by the server in seconds resolution.
1179 &quot;logMessageFormat&quot;: &quot;A String&quot;, # Only relevant when action is `LOG`. Defines the message to log when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001180 # the breakpoint hits. The message may include parameter placeholders `$0`,
1181 # `$1`, etc. These placeholders are replaced with the evaluated value
1182 # of the appropriate expression. Expressions not referenced in
1183 # `log_message_format` are not logged.
1184 #
1185 # Example: `Message received, id = $0, count = $1` with
1186 # `expressions` = `[ message.id, message.count ]`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001187 &quot;labels&quot;: { # A set of custom breakpoint properties, populated by the agent, to be
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001188 # displayed to the user.
Bu Sun Kim65020912020-05-20 12:08:20 -07001189 &quot;a_key&quot;: &quot;A String&quot;,
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -07001190 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001191 &quot;expressions&quot;: [ # List of read-only expressions to evaluate at the breakpoint location.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001192 # The expressions are composed using expressions in the programming language
1193 # at the source location. If the breakpoint action is `LOG`, the evaluated
1194 # expressions are included in log statements.
Bu Sun Kim65020912020-05-20 12:08:20 -07001195 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001196 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001197 &quot;evaluatedExpressions&quot;: [ # Values of evaluated expressions at breakpoint time.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001198 # The evaluated expressions appear in exactly the same order they
1199 # are listed in the `expressions` field.
1200 # The `name` field holds the original expression text, the `value` or
1201 # `members` field holds the result of the evaluated expression.
1202 # If the expression cannot be evaluated, the `status` inside the `Variable`
1203 # will indicate an error and contain the error text.
1204 { # Represents a variable or an argument possibly of a compound object type.
1205 # Note how the following variables are represented:
1206 #
1207 # 1) A simple variable:
1208 #
1209 # int x = 5
1210 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001211 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001212 #
1213 # 2) A compound object:
1214 #
1215 # struct T {
1216 # int m1;
1217 # int m2;
1218 # };
1219 # T x = { 3, 7 };
1220 #
1221 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001222 # name: &quot;x&quot;,
1223 # type: &quot;T&quot;,
1224 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1225 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001226 # }
1227 #
1228 # 3) A pointer where the pointee was captured:
1229 #
1230 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07001231 # T* p = &amp;x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001232 #
1233 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001234 # name: &quot;p&quot;,
1235 # type: &quot;T*&quot;,
1236 # value: &quot;0x00500500&quot;,
1237 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1238 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001239 # }
1240 #
1241 # 4) A pointer where the pointee was not captured:
1242 #
1243 # T* p = new T;
1244 #
1245 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001246 # name: &quot;p&quot;,
1247 # type: &quot;T*&quot;,
1248 # value: &quot;0x00400400&quot;
1249 # status { is_error: true, description { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001250 # }
1251 #
1252 # The status should describe the reason for the missing value,
Dan O'Mearadd494642020-05-01 07:42:23 -07001253 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001254 #
1255 # Note that a null pointer should not have members.
1256 #
1257 # 5) An unnamed value:
1258 #
1259 # int* p = new int(7);
1260 #
1261 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001262 # name: &quot;p&quot;,
1263 # value: &quot;0x00500500&quot;,
1264 # type: &quot;int*&quot;,
1265 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001266 #
1267 # 6) An unnamed pointer where the pointee was not captured:
1268 #
1269 # int* p = new int(7);
Dan O'Mearadd494642020-05-01 07:42:23 -07001270 # int** pp = &amp;p;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001271 #
1272 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001273 # name: &quot;pp&quot;,
1274 # value: &quot;0x00500500&quot;,
1275 # type: &quot;int**&quot;,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001276 # members {
Bu Sun Kim65020912020-05-20 12:08:20 -07001277 # value: &quot;0x00400400&quot;,
1278 # type: &quot;int*&quot;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001279 # status {
1280 # is_error: true,
Bu Sun Kim65020912020-05-20 12:08:20 -07001281 # description: { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001282 # }
1283 # }
1284 # }
1285 #
1286 # To optimize computation, memory and network traffic, variables that
1287 # repeat in the output multiple times can be stored once in a shared
1288 # variable table and be referenced using the `var_table_index` field. The
1289 # variables stored in the shared table are nameless and are essentially
1290 # a partition of the complete variable. To reconstruct the complete
1291 # variable, merge the referencing variable with the referenced variable.
1292 #
1293 # When using the shared variable table, the following variables:
1294 #
1295 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07001296 # T* p = &amp;x;
1297 # T&amp; r = x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001298 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001299 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
1300 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
1301 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001302 #
1303 # { // Shared variable table entry #3:
Bu Sun Kim65020912020-05-20 12:08:20 -07001304 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1305 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001306 # }
1307 #
1308 # Note that the pointer address is stored with the referencing variable
1309 # and not with the referenced variable. This allows the referenced variable
1310 # to be shared between pointers and references.
1311 #
1312 # The type field is optional. The debugger agent may or may not support it.
Bu Sun Kim65020912020-05-20 12:08:20 -07001313 &quot;members&quot;: [ # Members contained or pointed to by the variable.
1314 # Object with schema name: Variable
1315 ],
1316 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001317 # unset. A status of a single variable only applies to that variable or
1318 # expression. The rest of breakpoint data still remains valid. Variables
1319 # might be reported in error state even when breakpoint is not in final
1320 # state.
1321 #
1322 # The message may refer to variable name with `refers_to` set to
1323 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1324 # In either case variable value and members will be unset.
1325 #
1326 # Example of error message applied to name: `Invalid expression syntax`.
1327 #
1328 # Example of information message applied to value: `Not captured`.
1329 #
1330 # Examples of error message applied to value:
1331 #
1332 # * `Malformed string`,
1333 # * `Field f not found in class C`
1334 # * `Null pointer dereference`
1335 # The message can indicate an error or informational status, and refer to
1336 # specific parts of the containing object.
1337 # For example, the `Breakpoint.status` field can indicate an error referring
1338 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001339 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
1340 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
1341 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
1342 &quot;A String&quot;,
Takashi Matsuo06694102015-09-11 13:55:40 -07001343 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001344 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001345 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1346 # character.
1347 #
1348 # Examples:
1349 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001350 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001351 # is loaded. Again, $0 is very important.`
1352 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07001353 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001354 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07001355 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001356 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
1357 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001358 # `var_table_index`, `type` goes next to `value`. The interpretation of
1359 # a type is agent specific. It is recommended to include the dynamic type
1360 # rather than a static type of an object.
Bu Sun Kim65020912020-05-20 12:08:20 -07001361 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
1362 # one variable can reference the same variable in the table. The
1363 # `var_table_index` field is an index into `variable_table` in Breakpoint.
1364 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
Takashi Matsuo06694102015-09-11 13:55:40 -07001365 },
1366 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001367 &quot;isFinalState&quot;: True or False, # When true, indicates that this is a final result and the
1368 # breakpoint state will not change from here on.
1369 &quot;stackFrames&quot;: [ # The stack at breakpoint time, where stack_frames[0] represents the most
1370 # recently entered function.
1371 { # Represents a stack frame context.
1372 &quot;arguments&quot;: [ # Set of arguments passed to this function.
1373 # Note that this might not be populated for all stack frames.
1374 { # Represents a variable or an argument possibly of a compound object type.
1375 # Note how the following variables are represented:
1376 #
1377 # 1) A simple variable:
1378 #
1379 # int x = 5
1380 #
1381 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
1382 #
1383 # 2) A compound object:
1384 #
1385 # struct T {
1386 # int m1;
1387 # int m2;
1388 # };
1389 # T x = { 3, 7 };
1390 #
1391 # { // Captured variable
1392 # name: &quot;x&quot;,
1393 # type: &quot;T&quot;,
1394 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1395 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1396 # }
1397 #
1398 # 3) A pointer where the pointee was captured:
1399 #
1400 # T x = { 3, 7 };
1401 # T* p = &amp;x;
1402 #
1403 # { // Captured variable
1404 # name: &quot;p&quot;,
1405 # type: &quot;T*&quot;,
1406 # value: &quot;0x00500500&quot;,
1407 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1408 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1409 # }
1410 #
1411 # 4) A pointer where the pointee was not captured:
1412 #
1413 # T* p = new T;
1414 #
1415 # { // Captured variable
1416 # name: &quot;p&quot;,
1417 # type: &quot;T*&quot;,
1418 # value: &quot;0x00400400&quot;
1419 # status { is_error: true, description { format: &quot;unavailable&quot; } }
1420 # }
1421 #
1422 # The status should describe the reason for the missing value,
1423 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
1424 #
1425 # Note that a null pointer should not have members.
1426 #
1427 # 5) An unnamed value:
1428 #
1429 # int* p = new int(7);
1430 #
1431 # { // Captured variable
1432 # name: &quot;p&quot;,
1433 # value: &quot;0x00500500&quot;,
1434 # type: &quot;int*&quot;,
1435 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
1436 #
1437 # 6) An unnamed pointer where the pointee was not captured:
1438 #
1439 # int* p = new int(7);
1440 # int** pp = &amp;p;
1441 #
1442 # { // Captured variable
1443 # name: &quot;pp&quot;,
1444 # value: &quot;0x00500500&quot;,
1445 # type: &quot;int**&quot;,
1446 # members {
1447 # value: &quot;0x00400400&quot;,
1448 # type: &quot;int*&quot;
1449 # status {
1450 # is_error: true,
1451 # description: { format: &quot;unavailable&quot; } }
1452 # }
1453 # }
1454 # }
1455 #
1456 # To optimize computation, memory and network traffic, variables that
1457 # repeat in the output multiple times can be stored once in a shared
1458 # variable table and be referenced using the `var_table_index` field. The
1459 # variables stored in the shared table are nameless and are essentially
1460 # a partition of the complete variable. To reconstruct the complete
1461 # variable, merge the referencing variable with the referenced variable.
1462 #
1463 # When using the shared variable table, the following variables:
1464 #
1465 # T x = { 3, 7 };
1466 # T* p = &amp;x;
1467 # T&amp; r = x;
1468 #
1469 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
1470 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
1471 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
1472 #
1473 # { // Shared variable table entry #3:
1474 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1475 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1476 # }
1477 #
1478 # Note that the pointer address is stored with the referencing variable
1479 # and not with the referenced variable. This allows the referenced variable
1480 # to be shared between pointers and references.
1481 #
1482 # The type field is optional. The debugger agent may or may not support it.
1483 &quot;members&quot;: [ # Members contained or pointed to by the variable.
1484 # Object with schema name: Variable
1485 ],
1486 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
1487 # unset. A status of a single variable only applies to that variable or
1488 # expression. The rest of breakpoint data still remains valid. Variables
1489 # might be reported in error state even when breakpoint is not in final
1490 # state.
1491 #
1492 # The message may refer to variable name with `refers_to` set to
1493 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1494 # In either case variable value and members will be unset.
1495 #
1496 # Example of error message applied to name: `Invalid expression syntax`.
1497 #
1498 # Example of information message applied to value: `Not captured`.
1499 #
1500 # Examples of error message applied to value:
1501 #
1502 # * `Malformed string`,
1503 # * `Field f not found in class C`
1504 # * `Null pointer dereference`
1505 # The message can indicate an error or informational status, and refer to
1506 # specific parts of the containing object.
1507 # For example, the `Breakpoint.status` field can indicate an error referring
1508 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
1509 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
1510 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
1511 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
1512 &quot;A String&quot;,
1513 ],
1514 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
1515 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1516 # character.
1517 #
1518 # Examples:
1519 #
1520 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
1521 # is loaded. Again, $0 is very important.`
1522 # * `Please pay $$10 to use $0 instead of $1.`
1523 },
1524 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
1525 },
1526 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
1527 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
1528 # `var_table_index`, `type` goes next to `value`. The interpretation of
1529 # a type is agent specific. It is recommended to include the dynamic type
1530 # rather than a static type of an object.
1531 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
1532 # one variable can reference the same variable in the table. The
1533 # `var_table_index` field is an index into `variable_table` in Breakpoint.
1534 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
1535 },
1536 ],
1537 &quot;locals&quot;: [ # Set of local variables at the stack frame location.
1538 # Note that this might not be populated for all stack frames.
1539 { # Represents a variable or an argument possibly of a compound object type.
1540 # Note how the following variables are represented:
1541 #
1542 # 1) A simple variable:
1543 #
1544 # int x = 5
1545 #
1546 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
1547 #
1548 # 2) A compound object:
1549 #
1550 # struct T {
1551 # int m1;
1552 # int m2;
1553 # };
1554 # T x = { 3, 7 };
1555 #
1556 # { // Captured variable
1557 # name: &quot;x&quot;,
1558 # type: &quot;T&quot;,
1559 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1560 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1561 # }
1562 #
1563 # 3) A pointer where the pointee was captured:
1564 #
1565 # T x = { 3, 7 };
1566 # T* p = &amp;x;
1567 #
1568 # { // Captured variable
1569 # name: &quot;p&quot;,
1570 # type: &quot;T*&quot;,
1571 # value: &quot;0x00500500&quot;,
1572 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1573 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1574 # }
1575 #
1576 # 4) A pointer where the pointee was not captured:
1577 #
1578 # T* p = new T;
1579 #
1580 # { // Captured variable
1581 # name: &quot;p&quot;,
1582 # type: &quot;T*&quot;,
1583 # value: &quot;0x00400400&quot;
1584 # status { is_error: true, description { format: &quot;unavailable&quot; } }
1585 # }
1586 #
1587 # The status should describe the reason for the missing value,
1588 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
1589 #
1590 # Note that a null pointer should not have members.
1591 #
1592 # 5) An unnamed value:
1593 #
1594 # int* p = new int(7);
1595 #
1596 # { // Captured variable
1597 # name: &quot;p&quot;,
1598 # value: &quot;0x00500500&quot;,
1599 # type: &quot;int*&quot;,
1600 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
1601 #
1602 # 6) An unnamed pointer where the pointee was not captured:
1603 #
1604 # int* p = new int(7);
1605 # int** pp = &amp;p;
1606 #
1607 # { // Captured variable
1608 # name: &quot;pp&quot;,
1609 # value: &quot;0x00500500&quot;,
1610 # type: &quot;int**&quot;,
1611 # members {
1612 # value: &quot;0x00400400&quot;,
1613 # type: &quot;int*&quot;
1614 # status {
1615 # is_error: true,
1616 # description: { format: &quot;unavailable&quot; } }
1617 # }
1618 # }
1619 # }
1620 #
1621 # To optimize computation, memory and network traffic, variables that
1622 # repeat in the output multiple times can be stored once in a shared
1623 # variable table and be referenced using the `var_table_index` field. The
1624 # variables stored in the shared table are nameless and are essentially
1625 # a partition of the complete variable. To reconstruct the complete
1626 # variable, merge the referencing variable with the referenced variable.
1627 #
1628 # When using the shared variable table, the following variables:
1629 #
1630 # T x = { 3, 7 };
1631 # T* p = &amp;x;
1632 # T&amp; r = x;
1633 #
1634 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
1635 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
1636 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
1637 #
1638 # { // Shared variable table entry #3:
1639 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1640 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
1641 # }
1642 #
1643 # Note that the pointer address is stored with the referencing variable
1644 # and not with the referenced variable. This allows the referenced variable
1645 # to be shared between pointers and references.
1646 #
1647 # The type field is optional. The debugger agent may or may not support it.
1648 &quot;members&quot;: [ # Members contained or pointed to by the variable.
1649 # Object with schema name: Variable
1650 ],
1651 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
1652 # unset. A status of a single variable only applies to that variable or
1653 # expression. The rest of breakpoint data still remains valid. Variables
1654 # might be reported in error state even when breakpoint is not in final
1655 # state.
1656 #
1657 # The message may refer to variable name with `refers_to` set to
1658 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1659 # In either case variable value and members will be unset.
1660 #
1661 # Example of error message applied to name: `Invalid expression syntax`.
1662 #
1663 # Example of information message applied to value: `Not captured`.
1664 #
1665 # Examples of error message applied to value:
1666 #
1667 # * `Malformed string`,
1668 # * `Field f not found in class C`
1669 # * `Null pointer dereference`
1670 # The message can indicate an error or informational status, and refer to
1671 # specific parts of the containing object.
1672 # For example, the `Breakpoint.status` field can indicate an error referring
1673 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
1674 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
1675 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
1676 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
1677 &quot;A String&quot;,
1678 ],
1679 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
1680 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1681 # character.
1682 #
1683 # Examples:
1684 #
1685 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
1686 # is loaded. Again, $0 is very important.`
1687 # * `Please pay $$10 to use $0 instead of $1.`
1688 },
1689 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
1690 },
1691 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
1692 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
1693 # `var_table_index`, `type` goes next to `value`. The interpretation of
1694 # a type is agent specific. It is recommended to include the dynamic type
1695 # rather than a static type of an object.
1696 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
1697 # one variable can reference the same variable in the table. The
1698 # `var_table_index` field is an index into `variable_table` in Breakpoint.
1699 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
1700 },
1701 ],
1702 &quot;location&quot;: { # Represents a location in the source code. # Source location of the call site.
1703 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
1704 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
1705 # Agents that do not support setting breakpoints on specific columns ignore
1706 # this field.
1707 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
1708 },
1709 &quot;function&quot;: &quot;A String&quot;, # Demangled function name at the call site.
1710 },
1711 ],
1712 &quot;condition&quot;: &quot;A String&quot;, # Condition that triggers the breakpoint.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001713 # The condition is a compound boolean expression composed using expressions
1714 # in a programming language at the source location.
Takashi Matsuo06694102015-09-11 13:55:40 -07001715 },
1716 ],
1717 }</pre>
1718</div>
1719
1720<div class="method">
Bu Sun Kim65020912020-05-20 12:08:20 -07001721 <code class="details" id="set">set(debuggeeId, body=None, canaryOption=None, clientVersion=None, x__xgafv=None)</code>
Takashi Matsuo06694102015-09-11 13:55:40 -07001722 <pre>Sets the breakpoint to the debuggee.
1723
1724Args:
Dan O'Mearadd494642020-05-01 07:42:23 -07001725 debuggeeId: string, Required. ID of the debuggee where the breakpoint is to be set. (required)
1726 body: object, The request body.
Takashi Matsuo06694102015-09-11 13:55:40 -07001727 The object takes the form of:
1728
Dan O'Mearadd494642020-05-01 07:42:23 -07001729{ # ------------------------------------------------------------------------------
1730 # ## Breakpoint (the resource)
1731 #
1732 # Represents the breakpoint specification, status and results.
Bu Sun Kim65020912020-05-20 12:08:20 -07001733 &quot;canaryExpireTime&quot;: &quot;A String&quot;, # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
1734 # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
1735 &quot;status&quot;: { # Represents a contextual status message. # Breakpoint status.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001736 #
1737 # The status includes an error flag and a human readable message.
1738 # This field is usually unset. The message can be either
1739 # informational or an error message. Regardless, clients should always
1740 # display the text message back to the user.
1741 #
1742 # Error status indicates complete failure of the breakpoint.
1743 #
1744 # Example (non-final state): `Still loading symbols...`
1745 #
1746 # Examples (final state):
1747 #
1748 # * `Invalid line number` referring to location
1749 # * `Field f not found in class C` referring to condition
1750 # The message can indicate an error or informational status, and refer to
1751 # specific parts of the containing object.
1752 # For example, the `Breakpoint.status` field can indicate an error referring
1753 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001754 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
1755 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
1756 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
1757 &quot;A String&quot;,
Takashi Matsuo06694102015-09-11 13:55:40 -07001758 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001759 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001760 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1761 # character.
1762 #
1763 # Examples:
1764 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001765 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001766 # is loaded. Again, $0 is very important.`
1767 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07001768 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001769 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07001770 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001771 &quot;state&quot;: &quot;A String&quot;, # The current state of the breakpoint.
1772 &quot;userEmail&quot;: &quot;A String&quot;, # E-mail address of the user that created this breakpoint
1773 &quot;action&quot;: &quot;A String&quot;, # Action that the agent should perform when the code at the
1774 # breakpoint location is hit.
1775 &quot;logLevel&quot;: &quot;A String&quot;, # Indicates the severity of the log. Only relevant when action is `LOG`.
1776 &quot;id&quot;: &quot;A String&quot;, # Breakpoint identifier, unique in the scope of the debuggee.
1777 &quot;location&quot;: { # Represents a location in the source code. # Breakpoint source location.
1778 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
1779 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
1780 # Agents that do not support setting breakpoints on specific columns ignore
1781 # this field.
1782 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
1783 },
1784 &quot;finalTime&quot;: &quot;A String&quot;, # Time this breakpoint was finalized as seen by the server in seconds
1785 # resolution.
1786 &quot;variableTable&quot;: [ # The `variable_table` exists to aid with computation, memory and network
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001787 # traffic optimization. It enables storing a variable once and reference
1788 # it from multiple variables, including variables stored in the
1789 # `variable_table` itself.
1790 # For example, the same `this` object, which may appear at many levels of
1791 # the stack, can have all of its data stored once in this table. The
1792 # stack frame variables then would hold only a reference to it.
1793 #
1794 # The variable `var_table_index` field is an index into this repeated field.
1795 # The stored objects are nameless and get their name from the referencing
1796 # variable. The effective variable is a merge of the referencing variable
1797 # and the referenced variable.
1798 { # Represents a variable or an argument possibly of a compound object type.
1799 # Note how the following variables are represented:
1800 #
1801 # 1) A simple variable:
1802 #
1803 # int x = 5
1804 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001805 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001806 #
1807 # 2) A compound object:
1808 #
1809 # struct T {
1810 # int m1;
1811 # int m2;
1812 # };
1813 # T x = { 3, 7 };
1814 #
1815 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001816 # name: &quot;x&quot;,
1817 # type: &quot;T&quot;,
1818 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1819 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001820 # }
1821 #
1822 # 3) A pointer where the pointee was captured:
1823 #
1824 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07001825 # T* p = &amp;x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001826 #
1827 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001828 # name: &quot;p&quot;,
1829 # type: &quot;T*&quot;,
1830 # value: &quot;0x00500500&quot;,
1831 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1832 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001833 # }
1834 #
1835 # 4) A pointer where the pointee was not captured:
1836 #
1837 # T* p = new T;
1838 #
1839 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001840 # name: &quot;p&quot;,
1841 # type: &quot;T*&quot;,
1842 # value: &quot;0x00400400&quot;
1843 # status { is_error: true, description { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001844 # }
1845 #
1846 # The status should describe the reason for the missing value,
Dan O'Mearadd494642020-05-01 07:42:23 -07001847 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001848 #
1849 # Note that a null pointer should not have members.
1850 #
1851 # 5) An unnamed value:
1852 #
1853 # int* p = new int(7);
1854 #
1855 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001856 # name: &quot;p&quot;,
1857 # value: &quot;0x00500500&quot;,
1858 # type: &quot;int*&quot;,
1859 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001860 #
1861 # 6) An unnamed pointer where the pointee was not captured:
1862 #
1863 # int* p = new int(7);
Dan O'Mearadd494642020-05-01 07:42:23 -07001864 # int** pp = &amp;p;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001865 #
1866 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07001867 # name: &quot;pp&quot;,
1868 # value: &quot;0x00500500&quot;,
1869 # type: &quot;int**&quot;,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001870 # members {
Bu Sun Kim65020912020-05-20 12:08:20 -07001871 # value: &quot;0x00400400&quot;,
1872 # type: &quot;int*&quot;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001873 # status {
1874 # is_error: true,
Bu Sun Kim65020912020-05-20 12:08:20 -07001875 # description: { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001876 # }
1877 # }
1878 # }
1879 #
1880 # To optimize computation, memory and network traffic, variables that
1881 # repeat in the output multiple times can be stored once in a shared
1882 # variable table and be referenced using the `var_table_index` field. The
1883 # variables stored in the shared table are nameless and are essentially
1884 # a partition of the complete variable. To reconstruct the complete
1885 # variable, merge the referencing variable with the referenced variable.
1886 #
1887 # When using the shared variable table, the following variables:
1888 #
1889 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07001890 # T* p = &amp;x;
1891 # T&amp; r = x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001892 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001893 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
1894 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
1895 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001896 #
1897 # { // Shared variable table entry #3:
Bu Sun Kim65020912020-05-20 12:08:20 -07001898 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
1899 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001900 # }
1901 #
1902 # Note that the pointer address is stored with the referencing variable
1903 # and not with the referenced variable. This allows the referenced variable
1904 # to be shared between pointers and references.
1905 #
1906 # The type field is optional. The debugger agent may or may not support it.
Bu Sun Kim65020912020-05-20 12:08:20 -07001907 &quot;members&quot;: [ # Members contained or pointed to by the variable.
1908 # Object with schema name: Variable
1909 ],
1910 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001911 # unset. A status of a single variable only applies to that variable or
1912 # expression. The rest of breakpoint data still remains valid. Variables
1913 # might be reported in error state even when breakpoint is not in final
1914 # state.
1915 #
1916 # The message may refer to variable name with `refers_to` set to
1917 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
1918 # In either case variable value and members will be unset.
1919 #
1920 # Example of error message applied to name: `Invalid expression syntax`.
1921 #
1922 # Example of information message applied to value: `Not captured`.
1923 #
1924 # Examples of error message applied to value:
1925 #
1926 # * `Malformed string`,
1927 # * `Field f not found in class C`
1928 # * `Null pointer dereference`
1929 # The message can indicate an error or informational status, and refer to
1930 # specific parts of the containing object.
1931 # For example, the `Breakpoint.status` field can indicate an error referring
1932 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001933 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
1934 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
1935 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
1936 &quot;A String&quot;,
Takashi Matsuo06694102015-09-11 13:55:40 -07001937 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001938 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001939 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
1940 # character.
1941 #
1942 # Examples:
1943 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001944 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001945 # is loaded. Again, $0 is very important.`
1946 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07001947 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001948 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07001949 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001950 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
1951 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001952 # `var_table_index`, `type` goes next to `value`. The interpretation of
1953 # a type is agent specific. It is recommended to include the dynamic type
1954 # rather than a static type of an object.
Bu Sun Kim65020912020-05-20 12:08:20 -07001955 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
1956 # one variable can reference the same variable in the table. The
1957 # `var_table_index` field is an index into `variable_table` in Breakpoint.
1958 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
Takashi Matsuo06694102015-09-11 13:55:40 -07001959 },
1960 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001961 &quot;createTime&quot;: &quot;A String&quot;, # Time this breakpoint was created by the server in seconds resolution.
1962 &quot;logMessageFormat&quot;: &quot;A String&quot;, # Only relevant when action is `LOG`. Defines the message to log when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001963 # the breakpoint hits. The message may include parameter placeholders `$0`,
1964 # `$1`, etc. These placeholders are replaced with the evaluated value
1965 # of the appropriate expression. Expressions not referenced in
1966 # `log_message_format` are not logged.
1967 #
1968 # Example: `Message received, id = $0, count = $1` with
1969 # `expressions` = `[ message.id, message.count ]`.
Bu Sun Kim65020912020-05-20 12:08:20 -07001970 &quot;labels&quot;: { # A set of custom breakpoint properties, populated by the agent, to be
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001971 # displayed to the user.
Bu Sun Kim65020912020-05-20 12:08:20 -07001972 &quot;a_key&quot;: &quot;A String&quot;,
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -07001973 },
Bu Sun Kim65020912020-05-20 12:08:20 -07001974 &quot;expressions&quot;: [ # List of read-only expressions to evaluate at the breakpoint location.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001975 # The expressions are composed using expressions in the programming language
1976 # at the source location. If the breakpoint action is `LOG`, the evaluated
1977 # expressions are included in log statements.
Bu Sun Kim65020912020-05-20 12:08:20 -07001978 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07001979 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07001980 &quot;evaluatedExpressions&quot;: [ # Values of evaluated expressions at breakpoint time.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001981 # The evaluated expressions appear in exactly the same order they
1982 # are listed in the `expressions` field.
1983 # The `name` field holds the original expression text, the `value` or
1984 # `members` field holds the result of the evaluated expression.
1985 # If the expression cannot be evaluated, the `status` inside the `Variable`
1986 # will indicate an error and contain the error text.
1987 { # Represents a variable or an argument possibly of a compound object type.
1988 # Note how the following variables are represented:
1989 #
1990 # 1) A simple variable:
1991 #
1992 # int x = 5
1993 #
Bu Sun Kim65020912020-05-20 12:08:20 -07001994 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04001995 #
1996 # 2) A compound object:
1997 #
1998 # struct T {
1999 # int m1;
2000 # int m2;
2001 # };
2002 # T x = { 3, 7 };
2003 #
2004 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002005 # name: &quot;x&quot;,
2006 # type: &quot;T&quot;,
2007 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2008 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002009 # }
2010 #
2011 # 3) A pointer where the pointee was captured:
2012 #
2013 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07002014 # T* p = &amp;x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002015 #
2016 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002017 # name: &quot;p&quot;,
2018 # type: &quot;T*&quot;,
2019 # value: &quot;0x00500500&quot;,
2020 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2021 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002022 # }
2023 #
2024 # 4) A pointer where the pointee was not captured:
2025 #
2026 # T* p = new T;
2027 #
2028 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002029 # name: &quot;p&quot;,
2030 # type: &quot;T*&quot;,
2031 # value: &quot;0x00400400&quot;
2032 # status { is_error: true, description { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002033 # }
2034 #
2035 # The status should describe the reason for the missing value,
Dan O'Mearadd494642020-05-01 07:42:23 -07002036 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002037 #
2038 # Note that a null pointer should not have members.
2039 #
2040 # 5) An unnamed value:
2041 #
2042 # int* p = new int(7);
2043 #
2044 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002045 # name: &quot;p&quot;,
2046 # value: &quot;0x00500500&quot;,
2047 # type: &quot;int*&quot;,
2048 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002049 #
2050 # 6) An unnamed pointer where the pointee was not captured:
2051 #
2052 # int* p = new int(7);
Dan O'Mearadd494642020-05-01 07:42:23 -07002053 # int** pp = &amp;p;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002054 #
2055 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002056 # name: &quot;pp&quot;,
2057 # value: &quot;0x00500500&quot;,
2058 # type: &quot;int**&quot;,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002059 # members {
Bu Sun Kim65020912020-05-20 12:08:20 -07002060 # value: &quot;0x00400400&quot;,
2061 # type: &quot;int*&quot;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002062 # status {
2063 # is_error: true,
Bu Sun Kim65020912020-05-20 12:08:20 -07002064 # description: { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002065 # }
2066 # }
2067 # }
2068 #
2069 # To optimize computation, memory and network traffic, variables that
2070 # repeat in the output multiple times can be stored once in a shared
2071 # variable table and be referenced using the `var_table_index` field. The
2072 # variables stored in the shared table are nameless and are essentially
2073 # a partition of the complete variable. To reconstruct the complete
2074 # variable, merge the referencing variable with the referenced variable.
2075 #
2076 # When using the shared variable table, the following variables:
2077 #
2078 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07002079 # T* p = &amp;x;
2080 # T&amp; r = x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002081 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002082 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
2083 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
2084 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002085 #
2086 # { // Shared variable table entry #3:
Bu Sun Kim65020912020-05-20 12:08:20 -07002087 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2088 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002089 # }
2090 #
2091 # Note that the pointer address is stored with the referencing variable
2092 # and not with the referenced variable. This allows the referenced variable
2093 # to be shared between pointers and references.
2094 #
2095 # The type field is optional. The debugger agent may or may not support it.
Bu Sun Kim65020912020-05-20 12:08:20 -07002096 &quot;members&quot;: [ # Members contained or pointed to by the variable.
2097 # Object with schema name: Variable
2098 ],
2099 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002100 # unset. A status of a single variable only applies to that variable or
2101 # expression. The rest of breakpoint data still remains valid. Variables
2102 # might be reported in error state even when breakpoint is not in final
2103 # state.
2104 #
2105 # The message may refer to variable name with `refers_to` set to
2106 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2107 # In either case variable value and members will be unset.
2108 #
2109 # Example of error message applied to name: `Invalid expression syntax`.
2110 #
2111 # Example of information message applied to value: `Not captured`.
2112 #
2113 # Examples of error message applied to value:
2114 #
2115 # * `Malformed string`,
2116 # * `Field f not found in class C`
2117 # * `Null pointer dereference`
2118 # The message can indicate an error or informational status, and refer to
2119 # specific parts of the containing object.
2120 # For example, the `Breakpoint.status` field can indicate an error referring
2121 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002122 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
2123 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
2124 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
2125 &quot;A String&quot;,
Takashi Matsuo06694102015-09-11 13:55:40 -07002126 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002127 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002128 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2129 # character.
2130 #
2131 # Examples:
2132 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002133 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002134 # is loaded. Again, $0 is very important.`
2135 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07002136 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002137 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07002138 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002139 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
2140 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002141 # `var_table_index`, `type` goes next to `value`. The interpretation of
2142 # a type is agent specific. It is recommended to include the dynamic type
2143 # rather than a static type of an object.
Bu Sun Kim65020912020-05-20 12:08:20 -07002144 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
2145 # one variable can reference the same variable in the table. The
2146 # `var_table_index` field is an index into `variable_table` in Breakpoint.
2147 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
Takashi Matsuo06694102015-09-11 13:55:40 -07002148 },
2149 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002150 &quot;isFinalState&quot;: True or False, # When true, indicates that this is a final result and the
2151 # breakpoint state will not change from here on.
2152 &quot;stackFrames&quot;: [ # The stack at breakpoint time, where stack_frames[0] represents the most
2153 # recently entered function.
2154 { # Represents a stack frame context.
2155 &quot;arguments&quot;: [ # Set of arguments passed to this function.
2156 # Note that this might not be populated for all stack frames.
2157 { # Represents a variable or an argument possibly of a compound object type.
2158 # Note how the following variables are represented:
2159 #
2160 # 1) A simple variable:
2161 #
2162 # int x = 5
2163 #
2164 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
2165 #
2166 # 2) A compound object:
2167 #
2168 # struct T {
2169 # int m1;
2170 # int m2;
2171 # };
2172 # T x = { 3, 7 };
2173 #
2174 # { // Captured variable
2175 # name: &quot;x&quot;,
2176 # type: &quot;T&quot;,
2177 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2178 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2179 # }
2180 #
2181 # 3) A pointer where the pointee was captured:
2182 #
2183 # T x = { 3, 7 };
2184 # T* p = &amp;x;
2185 #
2186 # { // Captured variable
2187 # name: &quot;p&quot;,
2188 # type: &quot;T*&quot;,
2189 # value: &quot;0x00500500&quot;,
2190 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2191 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2192 # }
2193 #
2194 # 4) A pointer where the pointee was not captured:
2195 #
2196 # T* p = new T;
2197 #
2198 # { // Captured variable
2199 # name: &quot;p&quot;,
2200 # type: &quot;T*&quot;,
2201 # value: &quot;0x00400400&quot;
2202 # status { is_error: true, description { format: &quot;unavailable&quot; } }
2203 # }
2204 #
2205 # The status should describe the reason for the missing value,
2206 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
2207 #
2208 # Note that a null pointer should not have members.
2209 #
2210 # 5) An unnamed value:
2211 #
2212 # int* p = new int(7);
2213 #
2214 # { // Captured variable
2215 # name: &quot;p&quot;,
2216 # value: &quot;0x00500500&quot;,
2217 # type: &quot;int*&quot;,
2218 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
2219 #
2220 # 6) An unnamed pointer where the pointee was not captured:
2221 #
2222 # int* p = new int(7);
2223 # int** pp = &amp;p;
2224 #
2225 # { // Captured variable
2226 # name: &quot;pp&quot;,
2227 # value: &quot;0x00500500&quot;,
2228 # type: &quot;int**&quot;,
2229 # members {
2230 # value: &quot;0x00400400&quot;,
2231 # type: &quot;int*&quot;
2232 # status {
2233 # is_error: true,
2234 # description: { format: &quot;unavailable&quot; } }
2235 # }
2236 # }
2237 # }
2238 #
2239 # To optimize computation, memory and network traffic, variables that
2240 # repeat in the output multiple times can be stored once in a shared
2241 # variable table and be referenced using the `var_table_index` field. The
2242 # variables stored in the shared table are nameless and are essentially
2243 # a partition of the complete variable. To reconstruct the complete
2244 # variable, merge the referencing variable with the referenced variable.
2245 #
2246 # When using the shared variable table, the following variables:
2247 #
2248 # T x = { 3, 7 };
2249 # T* p = &amp;x;
2250 # T&amp; r = x;
2251 #
2252 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
2253 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
2254 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
2255 #
2256 # { // Shared variable table entry #3:
2257 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2258 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2259 # }
2260 #
2261 # Note that the pointer address is stored with the referencing variable
2262 # and not with the referenced variable. This allows the referenced variable
2263 # to be shared between pointers and references.
2264 #
2265 # The type field is optional. The debugger agent may or may not support it.
2266 &quot;members&quot;: [ # Members contained or pointed to by the variable.
2267 # Object with schema name: Variable
2268 ],
2269 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
2270 # unset. A status of a single variable only applies to that variable or
2271 # expression. The rest of breakpoint data still remains valid. Variables
2272 # might be reported in error state even when breakpoint is not in final
2273 # state.
2274 #
2275 # The message may refer to variable name with `refers_to` set to
2276 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2277 # In either case variable value and members will be unset.
2278 #
2279 # Example of error message applied to name: `Invalid expression syntax`.
2280 #
2281 # Example of information message applied to value: `Not captured`.
2282 #
2283 # Examples of error message applied to value:
2284 #
2285 # * `Malformed string`,
2286 # * `Field f not found in class C`
2287 # * `Null pointer dereference`
2288 # The message can indicate an error or informational status, and refer to
2289 # specific parts of the containing object.
2290 # For example, the `Breakpoint.status` field can indicate an error referring
2291 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
2292 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
2293 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
2294 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
2295 &quot;A String&quot;,
2296 ],
2297 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
2298 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2299 # character.
2300 #
2301 # Examples:
2302 #
2303 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
2304 # is loaded. Again, $0 is very important.`
2305 # * `Please pay $$10 to use $0 instead of $1.`
2306 },
2307 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
2308 },
2309 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
2310 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
2311 # `var_table_index`, `type` goes next to `value`. The interpretation of
2312 # a type is agent specific. It is recommended to include the dynamic type
2313 # rather than a static type of an object.
2314 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
2315 # one variable can reference the same variable in the table. The
2316 # `var_table_index` field is an index into `variable_table` in Breakpoint.
2317 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
2318 },
2319 ],
2320 &quot;locals&quot;: [ # Set of local variables at the stack frame location.
2321 # Note that this might not be populated for all stack frames.
2322 { # Represents a variable or an argument possibly of a compound object type.
2323 # Note how the following variables are represented:
2324 #
2325 # 1) A simple variable:
2326 #
2327 # int x = 5
2328 #
2329 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
2330 #
2331 # 2) A compound object:
2332 #
2333 # struct T {
2334 # int m1;
2335 # int m2;
2336 # };
2337 # T x = { 3, 7 };
2338 #
2339 # { // Captured variable
2340 # name: &quot;x&quot;,
2341 # type: &quot;T&quot;,
2342 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2343 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2344 # }
2345 #
2346 # 3) A pointer where the pointee was captured:
2347 #
2348 # T x = { 3, 7 };
2349 # T* p = &amp;x;
2350 #
2351 # { // Captured variable
2352 # name: &quot;p&quot;,
2353 # type: &quot;T*&quot;,
2354 # value: &quot;0x00500500&quot;,
2355 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2356 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2357 # }
2358 #
2359 # 4) A pointer where the pointee was not captured:
2360 #
2361 # T* p = new T;
2362 #
2363 # { // Captured variable
2364 # name: &quot;p&quot;,
2365 # type: &quot;T*&quot;,
2366 # value: &quot;0x00400400&quot;
2367 # status { is_error: true, description { format: &quot;unavailable&quot; } }
2368 # }
2369 #
2370 # The status should describe the reason for the missing value,
2371 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
2372 #
2373 # Note that a null pointer should not have members.
2374 #
2375 # 5) An unnamed value:
2376 #
2377 # int* p = new int(7);
2378 #
2379 # { // Captured variable
2380 # name: &quot;p&quot;,
2381 # value: &quot;0x00500500&quot;,
2382 # type: &quot;int*&quot;,
2383 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
2384 #
2385 # 6) An unnamed pointer where the pointee was not captured:
2386 #
2387 # int* p = new int(7);
2388 # int** pp = &amp;p;
2389 #
2390 # { // Captured variable
2391 # name: &quot;pp&quot;,
2392 # value: &quot;0x00500500&quot;,
2393 # type: &quot;int**&quot;,
2394 # members {
2395 # value: &quot;0x00400400&quot;,
2396 # type: &quot;int*&quot;
2397 # status {
2398 # is_error: true,
2399 # description: { format: &quot;unavailable&quot; } }
2400 # }
2401 # }
2402 # }
2403 #
2404 # To optimize computation, memory and network traffic, variables that
2405 # repeat in the output multiple times can be stored once in a shared
2406 # variable table and be referenced using the `var_table_index` field. The
2407 # variables stored in the shared table are nameless and are essentially
2408 # a partition of the complete variable. To reconstruct the complete
2409 # variable, merge the referencing variable with the referenced variable.
2410 #
2411 # When using the shared variable table, the following variables:
2412 #
2413 # T x = { 3, 7 };
2414 # T* p = &amp;x;
2415 # T&amp; r = x;
2416 #
2417 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
2418 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
2419 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
2420 #
2421 # { // Shared variable table entry #3:
2422 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2423 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2424 # }
2425 #
2426 # Note that the pointer address is stored with the referencing variable
2427 # and not with the referenced variable. This allows the referenced variable
2428 # to be shared between pointers and references.
2429 #
2430 # The type field is optional. The debugger agent may or may not support it.
2431 &quot;members&quot;: [ # Members contained or pointed to by the variable.
2432 # Object with schema name: Variable
2433 ],
2434 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
2435 # unset. A status of a single variable only applies to that variable or
2436 # expression. The rest of breakpoint data still remains valid. Variables
2437 # might be reported in error state even when breakpoint is not in final
2438 # state.
2439 #
2440 # The message may refer to variable name with `refers_to` set to
2441 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2442 # In either case variable value and members will be unset.
2443 #
2444 # Example of error message applied to name: `Invalid expression syntax`.
2445 #
2446 # Example of information message applied to value: `Not captured`.
2447 #
2448 # Examples of error message applied to value:
2449 #
2450 # * `Malformed string`,
2451 # * `Field f not found in class C`
2452 # * `Null pointer dereference`
2453 # The message can indicate an error or informational status, and refer to
2454 # specific parts of the containing object.
2455 # For example, the `Breakpoint.status` field can indicate an error referring
2456 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
2457 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
2458 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
2459 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
2460 &quot;A String&quot;,
2461 ],
2462 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
2463 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2464 # character.
2465 #
2466 # Examples:
2467 #
2468 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
2469 # is loaded. Again, $0 is very important.`
2470 # * `Please pay $$10 to use $0 instead of $1.`
2471 },
2472 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
2473 },
2474 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
2475 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
2476 # `var_table_index`, `type` goes next to `value`. The interpretation of
2477 # a type is agent specific. It is recommended to include the dynamic type
2478 # rather than a static type of an object.
2479 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
2480 # one variable can reference the same variable in the table. The
2481 # `var_table_index` field is an index into `variable_table` in Breakpoint.
2482 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
2483 },
2484 ],
2485 &quot;location&quot;: { # Represents a location in the source code. # Source location of the call site.
2486 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
2487 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
2488 # Agents that do not support setting breakpoints on specific columns ignore
2489 # this field.
2490 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
2491 },
2492 &quot;function&quot;: &quot;A String&quot;, # Demangled function name at the call site.
2493 },
2494 ],
2495 &quot;condition&quot;: &quot;A String&quot;, # Condition that triggers the breakpoint.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002496 # The condition is a compound boolean expression composed using expressions
2497 # in a programming language at the source location.
Takashi Matsuo06694102015-09-11 13:55:40 -07002498}
2499
Bu Sun Kim65020912020-05-20 12:08:20 -07002500 canaryOption: string, The canary option set by the user upon setting breakpoint.
Dan O'Mearadd494642020-05-01 07:42:23 -07002501 clientVersion: string, Required. The client version making the call.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002502Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
Takashi Matsuo06694102015-09-11 13:55:40 -07002503 x__xgafv: string, V1 error format.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002504 Allowed values
2505 1 - v1 error format
2506 2 - v2 error format
Takashi Matsuo06694102015-09-11 13:55:40 -07002507
2508Returns:
2509 An object of the form:
2510
Jon Wayne Parrott36e41bc2016-02-19 16:02:29 -08002511 { # Response for setting a breakpoint.
Bu Sun Kim65020912020-05-20 12:08:20 -07002512 &quot;breakpoint&quot;: { # ------------------------------------------------------------------------------ # Breakpoint resource.
Dan O'Mearadd494642020-05-01 07:42:23 -07002513 # The field `id` is guaranteed to be set (in addition to the echoed fields).
2514 # ## Breakpoint (the resource)
2515 #
2516 # Represents the breakpoint specification, status and results.
Bu Sun Kim65020912020-05-20 12:08:20 -07002517 &quot;canaryExpireTime&quot;: &quot;A String&quot;, # The deadline for the breakpoint to stay in CANARY_ACTIVE state. The value
2518 # is meaningless when the breakpoint is not in CANARY_ACTIVE state.
2519 &quot;status&quot;: { # Represents a contextual status message. # Breakpoint status.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002520 #
2521 # The status includes an error flag and a human readable message.
2522 # This field is usually unset. The message can be either
2523 # informational or an error message. Regardless, clients should always
2524 # display the text message back to the user.
2525 #
2526 # Error status indicates complete failure of the breakpoint.
2527 #
2528 # Example (non-final state): `Still loading symbols...`
2529 #
2530 # Examples (final state):
2531 #
2532 # * `Invalid line number` referring to location
2533 # * `Field f not found in class C` referring to condition
2534 # The message can indicate an error or informational status, and refer to
2535 # specific parts of the containing object.
2536 # For example, the `Breakpoint.status` field can indicate an error referring
2537 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002538 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
2539 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
2540 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
2541 &quot;A String&quot;,
Takashi Matsuo06694102015-09-11 13:55:40 -07002542 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002543 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002544 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2545 # character.
2546 #
2547 # Examples:
2548 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002549 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002550 # is loaded. Again, $0 is very important.`
2551 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07002552 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002553 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07002554 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002555 &quot;state&quot;: &quot;A String&quot;, # The current state of the breakpoint.
2556 &quot;userEmail&quot;: &quot;A String&quot;, # E-mail address of the user that created this breakpoint
2557 &quot;action&quot;: &quot;A String&quot;, # Action that the agent should perform when the code at the
2558 # breakpoint location is hit.
2559 &quot;logLevel&quot;: &quot;A String&quot;, # Indicates the severity of the log. Only relevant when action is `LOG`.
2560 &quot;id&quot;: &quot;A String&quot;, # Breakpoint identifier, unique in the scope of the debuggee.
2561 &quot;location&quot;: { # Represents a location in the source code. # Breakpoint source location.
2562 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
2563 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
2564 # Agents that do not support setting breakpoints on specific columns ignore
2565 # this field.
2566 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
2567 },
2568 &quot;finalTime&quot;: &quot;A String&quot;, # Time this breakpoint was finalized as seen by the server in seconds
2569 # resolution.
2570 &quot;variableTable&quot;: [ # The `variable_table` exists to aid with computation, memory and network
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002571 # traffic optimization. It enables storing a variable once and reference
2572 # it from multiple variables, including variables stored in the
2573 # `variable_table` itself.
2574 # For example, the same `this` object, which may appear at many levels of
2575 # the stack, can have all of its data stored once in this table. The
2576 # stack frame variables then would hold only a reference to it.
2577 #
2578 # The variable `var_table_index` field is an index into this repeated field.
2579 # The stored objects are nameless and get their name from the referencing
2580 # variable. The effective variable is a merge of the referencing variable
2581 # and the referenced variable.
2582 { # Represents a variable or an argument possibly of a compound object type.
2583 # Note how the following variables are represented:
2584 #
2585 # 1) A simple variable:
2586 #
2587 # int x = 5
2588 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002589 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002590 #
2591 # 2) A compound object:
2592 #
2593 # struct T {
2594 # int m1;
2595 # int m2;
2596 # };
2597 # T x = { 3, 7 };
2598 #
2599 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002600 # name: &quot;x&quot;,
2601 # type: &quot;T&quot;,
2602 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2603 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002604 # }
2605 #
2606 # 3) A pointer where the pointee was captured:
2607 #
2608 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07002609 # T* p = &amp;x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002610 #
2611 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002612 # name: &quot;p&quot;,
2613 # type: &quot;T*&quot;,
2614 # value: &quot;0x00500500&quot;,
2615 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2616 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002617 # }
2618 #
2619 # 4) A pointer where the pointee was not captured:
2620 #
2621 # T* p = new T;
2622 #
2623 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002624 # name: &quot;p&quot;,
2625 # type: &quot;T*&quot;,
2626 # value: &quot;0x00400400&quot;
2627 # status { is_error: true, description { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002628 # }
2629 #
2630 # The status should describe the reason for the missing value,
Dan O'Mearadd494642020-05-01 07:42:23 -07002631 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002632 #
2633 # Note that a null pointer should not have members.
2634 #
2635 # 5) An unnamed value:
2636 #
2637 # int* p = new int(7);
2638 #
2639 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002640 # name: &quot;p&quot;,
2641 # value: &quot;0x00500500&quot;,
2642 # type: &quot;int*&quot;,
2643 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002644 #
2645 # 6) An unnamed pointer where the pointee was not captured:
2646 #
2647 # int* p = new int(7);
Dan O'Mearadd494642020-05-01 07:42:23 -07002648 # int** pp = &amp;p;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002649 #
2650 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002651 # name: &quot;pp&quot;,
2652 # value: &quot;0x00500500&quot;,
2653 # type: &quot;int**&quot;,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002654 # members {
Bu Sun Kim65020912020-05-20 12:08:20 -07002655 # value: &quot;0x00400400&quot;,
2656 # type: &quot;int*&quot;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002657 # status {
2658 # is_error: true,
Bu Sun Kim65020912020-05-20 12:08:20 -07002659 # description: { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002660 # }
2661 # }
2662 # }
2663 #
2664 # To optimize computation, memory and network traffic, variables that
2665 # repeat in the output multiple times can be stored once in a shared
2666 # variable table and be referenced using the `var_table_index` field. The
2667 # variables stored in the shared table are nameless and are essentially
2668 # a partition of the complete variable. To reconstruct the complete
2669 # variable, merge the referencing variable with the referenced variable.
2670 #
2671 # When using the shared variable table, the following variables:
2672 #
2673 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07002674 # T* p = &amp;x;
2675 # T&amp; r = x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002676 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002677 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
2678 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
2679 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002680 #
2681 # { // Shared variable table entry #3:
Bu Sun Kim65020912020-05-20 12:08:20 -07002682 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2683 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002684 # }
2685 #
2686 # Note that the pointer address is stored with the referencing variable
2687 # and not with the referenced variable. This allows the referenced variable
2688 # to be shared between pointers and references.
2689 #
2690 # The type field is optional. The debugger agent may or may not support it.
Bu Sun Kim65020912020-05-20 12:08:20 -07002691 &quot;members&quot;: [ # Members contained or pointed to by the variable.
2692 # Object with schema name: Variable
2693 ],
2694 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002695 # unset. A status of a single variable only applies to that variable or
2696 # expression. The rest of breakpoint data still remains valid. Variables
2697 # might be reported in error state even when breakpoint is not in final
2698 # state.
2699 #
2700 # The message may refer to variable name with `refers_to` set to
2701 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2702 # In either case variable value and members will be unset.
2703 #
2704 # Example of error message applied to name: `Invalid expression syntax`.
2705 #
2706 # Example of information message applied to value: `Not captured`.
2707 #
2708 # Examples of error message applied to value:
2709 #
2710 # * `Malformed string`,
2711 # * `Field f not found in class C`
2712 # * `Null pointer dereference`
2713 # The message can indicate an error or informational status, and refer to
2714 # specific parts of the containing object.
2715 # For example, the `Breakpoint.status` field can indicate an error referring
2716 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002717 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
2718 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
2719 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
2720 &quot;A String&quot;,
Takashi Matsuo06694102015-09-11 13:55:40 -07002721 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002722 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002723 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2724 # character.
2725 #
2726 # Examples:
2727 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002728 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002729 # is loaded. Again, $0 is very important.`
2730 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07002731 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002732 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07002733 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002734 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
2735 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002736 # `var_table_index`, `type` goes next to `value`. The interpretation of
2737 # a type is agent specific. It is recommended to include the dynamic type
2738 # rather than a static type of an object.
Bu Sun Kim65020912020-05-20 12:08:20 -07002739 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
2740 # one variable can reference the same variable in the table. The
2741 # `var_table_index` field is an index into `variable_table` in Breakpoint.
2742 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
Takashi Matsuo06694102015-09-11 13:55:40 -07002743 },
2744 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002745 &quot;createTime&quot;: &quot;A String&quot;, # Time this breakpoint was created by the server in seconds resolution.
2746 &quot;logMessageFormat&quot;: &quot;A String&quot;, # Only relevant when action is `LOG`. Defines the message to log when
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002747 # the breakpoint hits. The message may include parameter placeholders `$0`,
2748 # `$1`, etc. These placeholders are replaced with the evaluated value
2749 # of the appropriate expression. Expressions not referenced in
2750 # `log_message_format` are not logged.
2751 #
2752 # Example: `Message received, id = $0, count = $1` with
2753 # `expressions` = `[ message.id, message.count ]`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002754 &quot;labels&quot;: { # A set of custom breakpoint properties, populated by the agent, to be
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002755 # displayed to the user.
Bu Sun Kim65020912020-05-20 12:08:20 -07002756 &quot;a_key&quot;: &quot;A String&quot;,
Jon Wayne Parrott0a471d32016-05-19 10:54:38 -07002757 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002758 &quot;expressions&quot;: [ # List of read-only expressions to evaluate at the breakpoint location.
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002759 # The expressions are composed using expressions in the programming language
2760 # at the source location. If the breakpoint action is `LOG`, the evaluated
2761 # expressions are included in log statements.
Bu Sun Kim65020912020-05-20 12:08:20 -07002762 &quot;A String&quot;,
Bu Sun Kim715bd7f2019-06-14 16:50:42 -07002763 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002764 &quot;evaluatedExpressions&quot;: [ # Values of evaluated expressions at breakpoint time.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002765 # The evaluated expressions appear in exactly the same order they
2766 # are listed in the `expressions` field.
2767 # The `name` field holds the original expression text, the `value` or
2768 # `members` field holds the result of the evaluated expression.
2769 # If the expression cannot be evaluated, the `status` inside the `Variable`
2770 # will indicate an error and contain the error text.
2771 { # Represents a variable or an argument possibly of a compound object type.
2772 # Note how the following variables are represented:
2773 #
2774 # 1) A simple variable:
2775 #
2776 # int x = 5
2777 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002778 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002779 #
2780 # 2) A compound object:
2781 #
2782 # struct T {
2783 # int m1;
2784 # int m2;
2785 # };
2786 # T x = { 3, 7 };
2787 #
2788 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002789 # name: &quot;x&quot;,
2790 # type: &quot;T&quot;,
2791 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2792 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002793 # }
2794 #
2795 # 3) A pointer where the pointee was captured:
2796 #
2797 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07002798 # T* p = &amp;x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002799 #
2800 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002801 # name: &quot;p&quot;,
2802 # type: &quot;T*&quot;,
2803 # value: &quot;0x00500500&quot;,
2804 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2805 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002806 # }
2807 #
2808 # 4) A pointer where the pointee was not captured:
2809 #
2810 # T* p = new T;
2811 #
2812 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002813 # name: &quot;p&quot;,
2814 # type: &quot;T*&quot;,
2815 # value: &quot;0x00400400&quot;
2816 # status { is_error: true, description { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002817 # }
2818 #
2819 # The status should describe the reason for the missing value,
Dan O'Mearadd494642020-05-01 07:42:23 -07002820 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002821 #
2822 # Note that a null pointer should not have members.
2823 #
2824 # 5) An unnamed value:
2825 #
2826 # int* p = new int(7);
2827 #
2828 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002829 # name: &quot;p&quot;,
2830 # value: &quot;0x00500500&quot;,
2831 # type: &quot;int*&quot;,
2832 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002833 #
2834 # 6) An unnamed pointer where the pointee was not captured:
2835 #
2836 # int* p = new int(7);
Dan O'Mearadd494642020-05-01 07:42:23 -07002837 # int** pp = &amp;p;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002838 #
2839 # { // Captured variable
Bu Sun Kim65020912020-05-20 12:08:20 -07002840 # name: &quot;pp&quot;,
2841 # value: &quot;0x00500500&quot;,
2842 # type: &quot;int**&quot;,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002843 # members {
Bu Sun Kim65020912020-05-20 12:08:20 -07002844 # value: &quot;0x00400400&quot;,
2845 # type: &quot;int*&quot;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002846 # status {
2847 # is_error: true,
Bu Sun Kim65020912020-05-20 12:08:20 -07002848 # description: { format: &quot;unavailable&quot; } }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002849 # }
2850 # }
2851 # }
2852 #
2853 # To optimize computation, memory and network traffic, variables that
2854 # repeat in the output multiple times can be stored once in a shared
2855 # variable table and be referenced using the `var_table_index` field. The
2856 # variables stored in the shared table are nameless and are essentially
2857 # a partition of the complete variable. To reconstruct the complete
2858 # variable, merge the referencing variable with the referenced variable.
2859 #
2860 # When using the shared variable table, the following variables:
2861 #
2862 # T x = { 3, 7 };
Dan O'Mearadd494642020-05-01 07:42:23 -07002863 # T* p = &amp;x;
2864 # T&amp; r = x;
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002865 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002866 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
2867 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
2868 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002869 #
2870 # { // Shared variable table entry #3:
Bu Sun Kim65020912020-05-20 12:08:20 -07002871 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2872 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002873 # }
2874 #
2875 # Note that the pointer address is stored with the referencing variable
2876 # and not with the referenced variable. This allows the referenced variable
2877 # to be shared between pointers and references.
2878 #
2879 # The type field is optional. The debugger agent may or may not support it.
Bu Sun Kim65020912020-05-20 12:08:20 -07002880 &quot;members&quot;: [ # Members contained or pointed to by the variable.
2881 # Object with schema name: Variable
2882 ],
2883 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002884 # unset. A status of a single variable only applies to that variable or
2885 # expression. The rest of breakpoint data still remains valid. Variables
2886 # might be reported in error state even when breakpoint is not in final
2887 # state.
2888 #
2889 # The message may refer to variable name with `refers_to` set to
2890 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
2891 # In either case variable value and members will be unset.
2892 #
2893 # Example of error message applied to name: `Invalid expression syntax`.
2894 #
2895 # Example of information message applied to value: `Not captured`.
2896 #
2897 # Examples of error message applied to value:
2898 #
2899 # * `Malformed string`,
2900 # * `Field f not found in class C`
2901 # * `Null pointer dereference`
2902 # The message can indicate an error or informational status, and refer to
2903 # specific parts of the containing object.
2904 # For example, the `Breakpoint.status` field can indicate an error referring
2905 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
Bu Sun Kim65020912020-05-20 12:08:20 -07002906 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
2907 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
2908 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
2909 &quot;A String&quot;,
Takashi Matsuo06694102015-09-11 13:55:40 -07002910 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002911 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002912 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
2913 # character.
2914 #
2915 # Examples:
2916 #
Bu Sun Kim65020912020-05-20 12:08:20 -07002917 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002918 # is loaded. Again, $0 is very important.`
2919 # * `Please pay $$10 to use $0 instead of $1.`
Takashi Matsuo06694102015-09-11 13:55:40 -07002920 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002921 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
Takashi Matsuo06694102015-09-11 13:55:40 -07002922 },
Bu Sun Kim65020912020-05-20 12:08:20 -07002923 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
2924 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04002925 # `var_table_index`, `type` goes next to `value`. The interpretation of
2926 # a type is agent specific. It is recommended to include the dynamic type
2927 # rather than a static type of an object.
Bu Sun Kim65020912020-05-20 12:08:20 -07002928 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
2929 # one variable can reference the same variable in the table. The
2930 # `var_table_index` field is an index into `variable_table` in Breakpoint.
2931 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
Takashi Matsuo06694102015-09-11 13:55:40 -07002932 },
2933 ],
Bu Sun Kim65020912020-05-20 12:08:20 -07002934 &quot;isFinalState&quot;: True or False, # When true, indicates that this is a final result and the
2935 # breakpoint state will not change from here on.
2936 &quot;stackFrames&quot;: [ # The stack at breakpoint time, where stack_frames[0] represents the most
2937 # recently entered function.
2938 { # Represents a stack frame context.
2939 &quot;arguments&quot;: [ # Set of arguments passed to this function.
2940 # Note that this might not be populated for all stack frames.
2941 { # Represents a variable or an argument possibly of a compound object type.
2942 # Note how the following variables are represented:
2943 #
2944 # 1) A simple variable:
2945 #
2946 # int x = 5
2947 #
2948 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
2949 #
2950 # 2) A compound object:
2951 #
2952 # struct T {
2953 # int m1;
2954 # int m2;
2955 # };
2956 # T x = { 3, 7 };
2957 #
2958 # { // Captured variable
2959 # name: &quot;x&quot;,
2960 # type: &quot;T&quot;,
2961 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2962 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2963 # }
2964 #
2965 # 3) A pointer where the pointee was captured:
2966 #
2967 # T x = { 3, 7 };
2968 # T* p = &amp;x;
2969 #
2970 # { // Captured variable
2971 # name: &quot;p&quot;,
2972 # type: &quot;T*&quot;,
2973 # value: &quot;0x00500500&quot;,
2974 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
2975 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
2976 # }
2977 #
2978 # 4) A pointer where the pointee was not captured:
2979 #
2980 # T* p = new T;
2981 #
2982 # { // Captured variable
2983 # name: &quot;p&quot;,
2984 # type: &quot;T*&quot;,
2985 # value: &quot;0x00400400&quot;
2986 # status { is_error: true, description { format: &quot;unavailable&quot; } }
2987 # }
2988 #
2989 # The status should describe the reason for the missing value,
2990 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
2991 #
2992 # Note that a null pointer should not have members.
2993 #
2994 # 5) An unnamed value:
2995 #
2996 # int* p = new int(7);
2997 #
2998 # { // Captured variable
2999 # name: &quot;p&quot;,
3000 # value: &quot;0x00500500&quot;,
3001 # type: &quot;int*&quot;,
3002 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
3003 #
3004 # 6) An unnamed pointer where the pointee was not captured:
3005 #
3006 # int* p = new int(7);
3007 # int** pp = &amp;p;
3008 #
3009 # { // Captured variable
3010 # name: &quot;pp&quot;,
3011 # value: &quot;0x00500500&quot;,
3012 # type: &quot;int**&quot;,
3013 # members {
3014 # value: &quot;0x00400400&quot;,
3015 # type: &quot;int*&quot;
3016 # status {
3017 # is_error: true,
3018 # description: { format: &quot;unavailable&quot; } }
3019 # }
3020 # }
3021 # }
3022 #
3023 # To optimize computation, memory and network traffic, variables that
3024 # repeat in the output multiple times can be stored once in a shared
3025 # variable table and be referenced using the `var_table_index` field. The
3026 # variables stored in the shared table are nameless and are essentially
3027 # a partition of the complete variable. To reconstruct the complete
3028 # variable, merge the referencing variable with the referenced variable.
3029 #
3030 # When using the shared variable table, the following variables:
3031 #
3032 # T x = { 3, 7 };
3033 # T* p = &amp;x;
3034 # T&amp; r = x;
3035 #
3036 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
3037 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
3038 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
3039 #
3040 # { // Shared variable table entry #3:
3041 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
3042 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
3043 # }
3044 #
3045 # Note that the pointer address is stored with the referencing variable
3046 # and not with the referenced variable. This allows the referenced variable
3047 # to be shared between pointers and references.
3048 #
3049 # The type field is optional. The debugger agent may or may not support it.
3050 &quot;members&quot;: [ # Members contained or pointed to by the variable.
3051 # Object with schema name: Variable
3052 ],
3053 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
3054 # unset. A status of a single variable only applies to that variable or
3055 # expression. The rest of breakpoint data still remains valid. Variables
3056 # might be reported in error state even when breakpoint is not in final
3057 # state.
3058 #
3059 # The message may refer to variable name with `refers_to` set to
3060 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
3061 # In either case variable value and members will be unset.
3062 #
3063 # Example of error message applied to name: `Invalid expression syntax`.
3064 #
3065 # Example of information message applied to value: `Not captured`.
3066 #
3067 # Examples of error message applied to value:
3068 #
3069 # * `Malformed string`,
3070 # * `Field f not found in class C`
3071 # * `Null pointer dereference`
3072 # The message can indicate an error or informational status, and refer to
3073 # specific parts of the containing object.
3074 # For example, the `Breakpoint.status` field can indicate an error referring
3075 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
3076 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
3077 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
3078 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
3079 &quot;A String&quot;,
3080 ],
3081 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
3082 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
3083 # character.
3084 #
3085 # Examples:
3086 #
3087 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
3088 # is loaded. Again, $0 is very important.`
3089 # * `Please pay $$10 to use $0 instead of $1.`
3090 },
3091 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
3092 },
3093 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
3094 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
3095 # `var_table_index`, `type` goes next to `value`. The interpretation of
3096 # a type is agent specific. It is recommended to include the dynamic type
3097 # rather than a static type of an object.
3098 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
3099 # one variable can reference the same variable in the table. The
3100 # `var_table_index` field is an index into `variable_table` in Breakpoint.
3101 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
3102 },
3103 ],
3104 &quot;locals&quot;: [ # Set of local variables at the stack frame location.
3105 # Note that this might not be populated for all stack frames.
3106 { # Represents a variable or an argument possibly of a compound object type.
3107 # Note how the following variables are represented:
3108 #
3109 # 1) A simple variable:
3110 #
3111 # int x = 5
3112 #
3113 # { name: &quot;x&quot;, value: &quot;5&quot;, type: &quot;int&quot; } // Captured variable
3114 #
3115 # 2) A compound object:
3116 #
3117 # struct T {
3118 # int m1;
3119 # int m2;
3120 # };
3121 # T x = { 3, 7 };
3122 #
3123 # { // Captured variable
3124 # name: &quot;x&quot;,
3125 # type: &quot;T&quot;,
3126 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
3127 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
3128 # }
3129 #
3130 # 3) A pointer where the pointee was captured:
3131 #
3132 # T x = { 3, 7 };
3133 # T* p = &amp;x;
3134 #
3135 # { // Captured variable
3136 # name: &quot;p&quot;,
3137 # type: &quot;T*&quot;,
3138 # value: &quot;0x00500500&quot;,
3139 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
3140 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
3141 # }
3142 #
3143 # 4) A pointer where the pointee was not captured:
3144 #
3145 # T* p = new T;
3146 #
3147 # { // Captured variable
3148 # name: &quot;p&quot;,
3149 # type: &quot;T*&quot;,
3150 # value: &quot;0x00400400&quot;
3151 # status { is_error: true, description { format: &quot;unavailable&quot; } }
3152 # }
3153 #
3154 # The status should describe the reason for the missing value,
3155 # such as `&lt;optimized out&gt;`, `&lt;inaccessible&gt;`, `&lt;pointers limit reached&gt;`.
3156 #
3157 # Note that a null pointer should not have members.
3158 #
3159 # 5) An unnamed value:
3160 #
3161 # int* p = new int(7);
3162 #
3163 # { // Captured variable
3164 # name: &quot;p&quot;,
3165 # value: &quot;0x00500500&quot;,
3166 # type: &quot;int*&quot;,
3167 # members { value: &quot;7&quot;, type: &quot;int&quot; } }
3168 #
3169 # 6) An unnamed pointer where the pointee was not captured:
3170 #
3171 # int* p = new int(7);
3172 # int** pp = &amp;p;
3173 #
3174 # { // Captured variable
3175 # name: &quot;pp&quot;,
3176 # value: &quot;0x00500500&quot;,
3177 # type: &quot;int**&quot;,
3178 # members {
3179 # value: &quot;0x00400400&quot;,
3180 # type: &quot;int*&quot;
3181 # status {
3182 # is_error: true,
3183 # description: { format: &quot;unavailable&quot; } }
3184 # }
3185 # }
3186 # }
3187 #
3188 # To optimize computation, memory and network traffic, variables that
3189 # repeat in the output multiple times can be stored once in a shared
3190 # variable table and be referenced using the `var_table_index` field. The
3191 # variables stored in the shared table are nameless and are essentially
3192 # a partition of the complete variable. To reconstruct the complete
3193 # variable, merge the referencing variable with the referenced variable.
3194 #
3195 # When using the shared variable table, the following variables:
3196 #
3197 # T x = { 3, 7 };
3198 # T* p = &amp;x;
3199 # T&amp; r = x;
3200 #
3201 # { name: &quot;x&quot;, var_table_index: 3, type: &quot;T&quot; } // Captured variables
3202 # { name: &quot;p&quot;, value &quot;0x00500500&quot;, type=&quot;T*&quot;, var_table_index: 3 }
3203 # { name: &quot;r&quot;, type=&quot;T&amp;&quot;, var_table_index: 3 }
3204 #
3205 # { // Shared variable table entry #3:
3206 # members { name: &quot;m1&quot;, value: &quot;3&quot;, type: &quot;int&quot; },
3207 # members { name: &quot;m2&quot;, value: &quot;7&quot;, type: &quot;int&quot; }
3208 # }
3209 #
3210 # Note that the pointer address is stored with the referencing variable
3211 # and not with the referenced variable. This allows the referenced variable
3212 # to be shared between pointers and references.
3213 #
3214 # The type field is optional. The debugger agent may or may not support it.
3215 &quot;members&quot;: [ # Members contained or pointed to by the variable.
3216 # Object with schema name: Variable
3217 ],
3218 &quot;status&quot;: { # Represents a contextual status message. # Status associated with the variable. This field will usually stay
3219 # unset. A status of a single variable only applies to that variable or
3220 # expression. The rest of breakpoint data still remains valid. Variables
3221 # might be reported in error state even when breakpoint is not in final
3222 # state.
3223 #
3224 # The message may refer to variable name with `refers_to` set to
3225 # `VARIABLE_NAME`. Alternatively `refers_to` will be set to `VARIABLE_VALUE`.
3226 # In either case variable value and members will be unset.
3227 #
3228 # Example of error message applied to name: `Invalid expression syntax`.
3229 #
3230 # Example of information message applied to value: `Not captured`.
3231 #
3232 # Examples of error message applied to value:
3233 #
3234 # * `Malformed string`,
3235 # * `Field f not found in class C`
3236 # * `Null pointer dereference`
3237 # The message can indicate an error or informational status, and refer to
3238 # specific parts of the containing object.
3239 # For example, the `Breakpoint.status` field can indicate an error referring
3240 # to the `BREAKPOINT_SOURCE_LOCATION` with the message `Location not found`.
3241 &quot;isError&quot;: True or False, # Distinguishes errors from informational messages.
3242 &quot;description&quot;: { # Represents a message with parameters. # Status message text.
3243 &quot;parameters&quot;: [ # Optional parameters to be embedded into the message.
3244 &quot;A String&quot;,
3245 ],
3246 &quot;format&quot;: &quot;A String&quot;, # Format template for the message. The `format` uses placeholders `$0`,
3247 # `$1`, etc. to reference parameters. `$$` can be used to denote the `$`
3248 # character.
3249 #
3250 # Examples:
3251 #
3252 # * `Failed to load &#x27;$0&#x27; which helps debug $1 the first time it
3253 # is loaded. Again, $0 is very important.`
3254 # * `Please pay $$10 to use $0 instead of $1.`
3255 },
3256 &quot;refersTo&quot;: &quot;A String&quot;, # Reference to which the message applies.
3257 },
3258 &quot;name&quot;: &quot;A String&quot;, # Name of the variable, if any.
3259 &quot;type&quot;: &quot;A String&quot;, # Variable type (e.g. `MyClass`). If the variable is split with
3260 # `var_table_index`, `type` goes next to `value`. The interpretation of
3261 # a type is agent specific. It is recommended to include the dynamic type
3262 # rather than a static type of an object.
3263 &quot;varTableIndex&quot;: 42, # Reference to a variable in the shared variable table. More than
3264 # one variable can reference the same variable in the table. The
3265 # `var_table_index` field is an index into `variable_table` in Breakpoint.
3266 &quot;value&quot;: &quot;A String&quot;, # Simple value of the variable.
3267 },
3268 ],
3269 &quot;location&quot;: { # Represents a location in the source code. # Source location of the call site.
3270 &quot;path&quot;: &quot;A String&quot;, # Path to the source file within the source context of the target binary.
3271 &quot;column&quot;: 42, # Column within a line. The first column in a line as the value `1`.
3272 # Agents that do not support setting breakpoints on specific columns ignore
3273 # this field.
3274 &quot;line&quot;: 42, # Line inside the file. The first line in the file has the value `1`.
3275 },
3276 &quot;function&quot;: &quot;A String&quot;, # Demangled function name at the call site.
3277 },
3278 ],
3279 &quot;condition&quot;: &quot;A String&quot;, # Condition that triggers the breakpoint.
Sai Cheemalapatic30d2b52017-03-13 12:12:03 -04003280 # The condition is a compound boolean expression composed using expressions
3281 # in a programming language at the source location.
Takashi Matsuo06694102015-09-11 13:55:40 -07003282 },
3283 }</pre>
3284</div>
3285
3286</body></html>