Structs§

  • An alias to a repo revision.
  • —————————————————————————— ## Breakpoint (the resource) Represents the breakpoint specification, status and results.
  • Central instance to access all CloudDebugger related resource activities
  • A CloudRepoSourceContext denotes a particular revision in a cloud repo (a repo hosted by the Google Cloud Platform).
  • A CloudWorkspaceId is a unique identifier for a cloud workspace. A cloud workspace is a place associated with a repo where modified files can be stored before they are committed.
  • A CloudWorkspaceSourceContext denotes a workspace at a particular snapshot.
  • Returns the list of all active breakpoints for the debuggee. The breakpoint specification (location, condition, and expressions fields) is semantically immutable, although the field values may change. For example, an agent may update the location line number to reflect the actual line where the breakpoint was set, but this doesn’t change the breakpoint semantics. This means that an agent does not need to check if a breakpoint has changed when it encounters the same breakpoint on a successive call. Moreover, an agent should remember the breakpoints that are completed until the controller removes them from the active list to avoid setting those breakpoints again.
  • 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 expressions 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.
  • Registers the debuggee with the controller service. All agents attached to the same application must call this method with exactly the same request content to get back the same stable debuggee_id. Agents should call this method again whenever google.rpc.Code.NOT_FOUND is returned from any controller method. This protocol allows the controller service to disable debuggees, recover from data loss, or change the debuggee_id format. Agents must handle debuggee_id value changing upon re-registration.
  • A builder providing access to all methods supported on controller resources. It is not used directly, but through the CloudDebugger hub.
  • Represents the debugged application. The application may include one or more replicated processes executing the same code. Each of these processes is attached with a debugger agent, carrying out the debugging commands. Agents attached to the same debuggee identify themselves as such by using exactly the same Debuggee message value when registering.
  • Deletes the breakpoint from the debuggee.
  • Gets breakpoint information.
  • Lists all breakpoints for the debuggee.
  • Sets the breakpoint to the debuggee.
  • Lists all the debuggees that the user has access to.
  • A builder providing access to all methods supported on debugger resources. It is not used directly, but through the CloudDebugger hub.
  • A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
  • An ExtendedSourceContext is a SourceContext combined with additional details describing the context.
  • Represents a message with parameters.
  • A SourceContext referring to a Gerrit project.
  • Response for getting breakpoint information.
  • A GitSourceContext denotes a particular revision in a third party Git repository (e.g. GitHub).
  • Response for listing active breakpoints.
  • Response for listing breakpoints.
  • Response for listing debuggees.
  • Selects a repo using a Google Cloud Platform project ID (e.g. winged-cargo-31) and a repo name within that project.
  • Request to register a debuggee.
  • Response for registering a debuggee.
  • A unique identifier for a cloud repo.
  • Response for setting a breakpoint.
  • A SourceContext is a reference to a tree of files. A SourceContext together with a path point to a unique revision of a single file or directory.
  • Represents a location in the source code.
  • Represents a stack frame context.
  • Represents a contextual status message. The message can indicate an error or informational status, and refer to specific parts of the containing object. For example, the Breakpoint.status field can indicate an error referring to the BREAKPOINT_SOURCE_LOCATION with the message Location not found.
  • Request to update an active breakpoint.
  • Response for updating an active breakpoint. The message is defined to allow future extensions.
  • Represents a variable or an argument possibly of a compound object type. Note how the following variables are represented: 1) A simple variable: int x = 5 { name: “x”, value: “5”, type: “int” } // Captured variable 2) A compound object: struct T { int m1; int m2; }; T x = { 3, 7 }; { // Captured variable name: “x”, type: “T”, members { name: “m1”, value: “3”, type: “int” }, members { name: “m2”, value: “7”, type: “int” } } 3) A pointer where the pointee was captured: T x = { 3, 7 }; T* p = &x; { // Captured variable name: “p”, type: “T*”, value: “0x00500500”, members { name: “m1”, value: “3”, type: “int” }, members { name: “m2”, value: “7”, type: “int” } } 4) A pointer where the pointee was not captured: T* p = new T; { // Captured variable name: “p”, type: “T*”, value: “0x00400400” status { is_error: true, description { format: “unavailable” } } } The status should describe the reason for the missing value, such as , , ``. Note that a null pointer should not have members. 5) An unnamed value: int* p = new int(7); { // Captured variable name: “p”, value: “0x00500500”, type: “int*”, members { value: “7”, type: “int” } } 6) An unnamed pointer where the pointee was not captured: int* p = new int(7); int** pp = &p; { // Captured variable name: “pp”, value: “0x00500500”, type: “int**”, members { value: “0x00400400”, type: “int*” status { is_error: true, description: { format: “unavailable” } } } } } To optimize computation, memory and network traffic, variables that repeat in the output multiple times can be stored once in a shared variable table and be referenced using the var_table_index field. The variables stored in the shared table are nameless and are essentially a partition of the complete variable. To reconstruct the complete variable, merge the referencing variable with the referenced variable. When using the shared variable table, the following variables: T x = { 3, 7 }; T* p = &x; T& r = x; { name: “x”, var_table_index: 3, type: “T” } // Captured variables { name: “p”, value “0x00500500”, type=“T*”, var_table_index: 3 } { name: “r”, type=“T&”, var_table_index: 3 } { // Shared variable table entry #3: members { name: “m1”, value: “3”, type: “int” }, members { name: “m2”, value: “7”, type: “int” } } Note that the pointer address is stored with the referencing variable and not with the referenced variable. This allows the referenced variable to be shared between pointers and references. The type field is optional. The debugger agent may or may not support it.

Enums§