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

PUT https://clouddebugger.googleapis.com/v2/controller/debuggees/{debuggeeId}/breakpoints/{breakpoint.id}

The URL uses Google API HTTP annotation syntax.

Path parameters

Parameters
debuggeeId

string

Identifies the debuggee being debugged.

breakpoint.id

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": {
    object(SourceLocation)
  },
  "condition": string,
  "expressions": [
    string
  ],
  "logMessageFormat": string,
  "logLevel": enum(LogLevel),
  "isFinalState": boolean,
  "createTime": string,
  "finalTime": string,
  "userEmail": string,
  "status": {
    object(StatusMessage)
  },
  "stackFrames": [
    {
      object(StackFrame)
    }
  ],
  "evaluatedExpressions": [
    {
      object(Variable)
    }
  ],
  "variableTable": [
    {
      object(Variable)
    }
  ],
  "labels": {
    string: string,
    ...
  },
}
Fields
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.id, 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.

Authorization

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/cloud_debugger
  • https://www.googleapis.com/auth/cloud-platform

For more information, see the Auth Guide.

Monitor your resources on the go

Get the Google Cloud Console app to help you manage your projects.

Send feedback about...

Stackdriver Debugger