Method: controller.debuggees.breakpoints.update

Updates the breakpoint state or mutable fields. The entire Breakpoint message must be sent back to the controller service.

Updates to active breakpoint fields are only allowed if the new value does not change the breakpoint specification. Updates to the location, condition and expression fields should not alter the breakpoint semantics. These may only make changes such as canonicalizing a value or snapping the location to the correct line of code.

HTTP request


(This URI uses URI Template syntax.)

Path parameters

Parameter name Type Description
debuggeeId string Identifies the debuggee being debugged. string Breakpoint identifier, unique in the scope of the debuggee.

Request body

The request body contains data with the following structure:

JSON representation
  "action": enum(Action),
  "location": {
  "condition": string,
  "expressions": [
  "logMessageFormat": string,
  "logLevel": enum(LogLevel),
  "isFinalState": boolean,
  "createTime": string,
  "finalTime": string,
  "userEmail": string,
  "status": {
  "stackFrames": [
  "evaluatedExpressions": [
  "variableTable": [
  "labels": {
    string: string,
Field name Type Description
action enum(Action) Action that the agent should perform when the code at the breakpoint location is hit.
location object(SourceLocation) Breakpoint source location.
condition string Condition that triggers the breakpoint. The condition is a compound boolean expression composed using expressions in a programming language at the source location.
expressions[] string List of read-only expressions to evaluate at the breakpoint location. The expressions are composed using expressions in the programming language at the source location. If the breakpoint action is LOG, the evaluated expressions are included in log statements.
logMessageFormat string

Only relevant when action is LOG. Defines the message to log when the breakpoint hits. The message may include parameter placeholders $0, $1, etc. These placeholders are replaced with the evaluated value of the appropriate expression. Expressions not referenced in logMessageFormat are not logged.

Example: Message received, id = $0, count = $1 with expressions = [, message.count ].

logLevel enum(LogLevel) Indicates the severity of the log. Only relevant when action is LOG.
isFinalState boolean When true, indicates that this is a final result and the breakpoint state will not change from here on.
createTime string
(Timestamp format)

Time this breakpoint was created by the server in seconds resolution.

A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: "2014-10-02T15:01:23.045123456Z".

finalTime string
(Timestamp format)

Time this breakpoint was finalized as seen by the server in seconds resolution.

A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: "2014-10-02T15:01:23.045123456Z".

userEmail string E-mail address of the user that created this breakpoint
status object(StatusMessage)

Breakpoint status.

The status includes an error flag and a human readable message. This field is usually unset. The message can be either informational or an error message. Regardless, clients should always display the text message back to the user.

Error status indicates complete failure of the breakpoint.

Example (non-final state): Still loading symbols...

Examples (final state):

  • Invalid line number referring to location
  • Field f not found in class C referring to condition
stackFrames[] object(StackFrame) The stack at breakpoint time.
evaluatedExpressions[] object(Variable) Values of evaluated expressions at breakpoint time. The evaluated expressions appear in exactly the same order they are listed in the expressions field. The name field holds the original expression text, the value or members field holds the result of the evaluated expression. If the expression cannot be evaluated, the status inside the Variable will indicate an error and contain the error text.
variableTable[] object(Variable)

The variableTable exists to aid with computation, memory and network traffic optimization. It enables storing a variable once and reference it from multiple variables, including variables stored in the variableTable itself. For example, the same this object, which may appear at many levels of the stack, can have all of its data stored once in this table. The stack frame variables then would hold only a reference to it.

The variable varTableIndex field is an index into this repeated field. The stored objects are nameless and get their name from the referencing variable. The effective variable is a merge of the referencing variable and the referenced variable.

labels map (key: string, value: string)

A set of custom breakpoint properties, populated by the agent, to be displayed to the user.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

Response body

If successful, the response body will be empty.


Requires one of the following OAuth scopes:


For more information, see the Auth Guide.

Send feedback about...

Stackdriver Debugger Documentation