google-cloud-debugger 0.36.1 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +2 -1
  3. data/CHANGELOG.md +47 -0
  4. data/CONTRIBUTING.md +4 -4
  5. data/LOGGING.md +1 -1
  6. data/OVERVIEW.md +28 -59
  7. data/TROUBLESHOOTING.md +2 -8
  8. data/ext/google/cloud/debugger/debugger_c/tracer.c +8 -33
  9. data/lib/google-cloud-debugger.rb +14 -15
  10. data/lib/google/cloud/debugger.rb +18 -16
  11. data/lib/google/cloud/debugger/agent.rb +4 -1
  12. data/lib/google/cloud/debugger/breakpoint.rb +9 -9
  13. data/lib/google/cloud/debugger/breakpoint/evaluator.rb +19 -25
  14. data/lib/google/cloud/debugger/breakpoint/source_location.rb +6 -6
  15. data/lib/google/cloud/debugger/breakpoint/stack_frame.rb +5 -5
  16. data/lib/google/cloud/debugger/breakpoint/status_message.rb +4 -6
  17. data/lib/google/cloud/debugger/breakpoint/variable.rb +8 -11
  18. data/lib/google/cloud/debugger/breakpoint/variable_table.rb +1 -1
  19. data/lib/google/cloud/debugger/credentials.rb +9 -6
  20. data/lib/google/cloud/debugger/debuggee.rb +4 -4
  21. data/lib/google/cloud/debugger/middleware.rb +1 -1
  22. data/lib/google/cloud/debugger/rails.rb +2 -2
  23. data/lib/google/cloud/debugger/service.rb +28 -66
  24. data/lib/google/cloud/debugger/snappoint.rb +4 -7
  25. data/lib/google/cloud/debugger/transmitter.rb +1 -1
  26. data/lib/google/cloud/debugger/version.rb +1 -1
  27. metadata +14 -72
  28. data/lib/google/cloud/debugger/v2.rb +0 -243
  29. data/lib/google/cloud/debugger/v2/controller2_client.rb +0 -373
  30. data/lib/google/cloud/debugger/v2/controller2_client_config.json +0 -41
  31. data/lib/google/cloud/debugger/v2/credentials.rb +0 -42
  32. data/lib/google/cloud/debugger/v2/debugger2_client.rb +0 -481
  33. data/lib/google/cloud/debugger/v2/debugger2_client_config.json +0 -51
  34. data/lib/google/cloud/debugger/v2/doc/google/devtools/clouddebugger/v2/controller.rb +0 -91
  35. data/lib/google/cloud/debugger/v2/doc/google/devtools/clouddebugger/v2/data.rb +0 -443
  36. data/lib/google/cloud/debugger/v2/doc/google/devtools/clouddebugger/v2/debugger.rb +0 -151
  37. data/lib/google/cloud/debugger/v2/doc/google/devtools/source/v1/source_context.rb +0 -162
  38. data/lib/google/cloud/debugger/v2/doc/google/protobuf/empty.rb +0 -29
  39. data/lib/google/cloud/debugger/v2/doc/google/protobuf/timestamp.rb +0 -113
  40. data/lib/google/devtools/clouddebugger/v2/controller_pb.rb +0 -50
  41. data/lib/google/devtools/clouddebugger/v2/controller_services_pb.rb +0 -98
  42. data/lib/google/devtools/clouddebugger/v2/data_pb.rb +0 -108
  43. data/lib/google/devtools/clouddebugger/v2/debugger_pb.rb +0 -77
  44. data/lib/google/devtools/clouddebugger/v2/debugger_services_pb.rb +0 -66
  45. data/lib/google/devtools/source/v1/source_context_pb.rb +0 -90
@@ -1,481 +0,0 @@
1
- # Copyright 2020 Google LLC
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # https://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
- #
15
- # EDITING INSTRUCTIONS
16
- # This file was generated from the file
17
- # https://github.com/googleapis/googleapis/blob/master/google/devtools/clouddebugger/v2/debugger.proto,
18
- # and updates to that file get reflected here through a refresh process.
19
- # For the short term, the refresh process will only be runnable by Google
20
- # engineers.
21
-
22
-
23
- require "json"
24
- require "pathname"
25
-
26
- require "google/gax"
27
-
28
- require "google/devtools/clouddebugger/v2/debugger_pb"
29
- require "google/cloud/debugger/v2/credentials"
30
- require "google/cloud/debugger/version"
31
-
32
- module Google
33
- module Cloud
34
- module Debugger
35
- module V2
36
- # The Debugger service provides the API that allows users to collect run-time
37
- # information from a running application, without stopping or slowing it down
38
- # and without modifying its state. An application may include one or
39
- # more replicated processes performing the same work.
40
- #
41
- # A debugged application is represented using the Debuggee concept. The
42
- # Debugger service provides a way to query for available debuggees, but does
43
- # not provide a way to create one. A debuggee is created using the Controller
44
- # service, usually by running a debugger agent with the application.
45
- #
46
- # The Debugger service enables the client to set one or more Breakpoints on a
47
- # Debuggee and collect the results of the set Breakpoints.
48
- #
49
- # @!attribute [r] debugger2_stub
50
- # @return [Google::Devtools::Clouddebugger::V2::Debugger2::Stub]
51
- class Debugger2Client
52
- # @private
53
- attr_reader :debugger2_stub
54
-
55
- # The default address of the service.
56
- SERVICE_ADDRESS = "clouddebugger.googleapis.com".freeze
57
-
58
- # The default port of the service.
59
- DEFAULT_SERVICE_PORT = 443
60
-
61
- # The default set of gRPC interceptors.
62
- GRPC_INTERCEPTORS = []
63
-
64
- DEFAULT_TIMEOUT = 30
65
-
66
- # The scopes needed to make gRPC calls to all of the methods defined in
67
- # this service.
68
- ALL_SCOPES = [
69
- "https://www.googleapis.com/auth/cloud-platform",
70
- "https://www.googleapis.com/auth/cloud_debugger"
71
- ].freeze
72
-
73
-
74
- # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
75
- # Provides the means for authenticating requests made by the client. This parameter can
76
- # be many types.
77
- # A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
78
- # authenticating requests made by this client.
79
- # A `String` will be treated as the path to the keyfile to be used for the construction of
80
- # credentials for this client.
81
- # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
82
- # credentials for this client.
83
- # A `GRPC::Core::Channel` will be used to make calls through.
84
- # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
85
- # should already be composed with a `GRPC::Core::CallCredentials` object.
86
- # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
87
- # metadata for requests, generally, to give OAuth credentials.
88
- # @param scopes [Array<String>]
89
- # The OAuth scopes for this service. This parameter is ignored if
90
- # an updater_proc is supplied.
91
- # @param client_config [Hash]
92
- # A Hash for call options for each method. See
93
- # Google::Gax#construct_settings for the structure of
94
- # this data. Falls back to the default config if not specified
95
- # or the specified config is missing data points.
96
- # @param timeout [Numeric]
97
- # The default timeout, in seconds, for calls made through this client.
98
- # @param metadata [Hash]
99
- # Default metadata to be sent with each request. This can be overridden on a per call basis.
100
- # @param service_address [String]
101
- # Override for the service hostname, or `nil` to leave as the default.
102
- # @param service_port [Integer]
103
- # Override for the service port, or `nil` to leave as the default.
104
- # @param exception_transformer [Proc]
105
- # An optional proc that intercepts any exceptions raised during an API call to inject
106
- # custom error handling.
107
- def initialize \
108
- credentials: nil,
109
- scopes: ALL_SCOPES,
110
- client_config: {},
111
- timeout: DEFAULT_TIMEOUT,
112
- metadata: nil,
113
- service_address: nil,
114
- service_port: nil,
115
- exception_transformer: nil,
116
- lib_name: nil,
117
- lib_version: ""
118
- # These require statements are intentionally placed here to initialize
119
- # the gRPC module only when it's required.
120
- # See https://github.com/googleapis/toolkit/issues/446
121
- require "google/gax/grpc"
122
- require "google/devtools/clouddebugger/v2/debugger_services_pb"
123
-
124
- credentials ||= Google::Cloud::Debugger::V2::Credentials.default
125
-
126
- if credentials.is_a?(String) || credentials.is_a?(Hash)
127
- updater_proc = Google::Cloud::Debugger::V2::Credentials.new(credentials).updater_proc
128
- end
129
- if credentials.is_a?(GRPC::Core::Channel)
130
- channel = credentials
131
- end
132
- if credentials.is_a?(GRPC::Core::ChannelCredentials)
133
- chan_creds = credentials
134
- end
135
- if credentials.is_a?(Proc)
136
- updater_proc = credentials
137
- end
138
- if credentials.is_a?(Google::Auth::Credentials)
139
- updater_proc = credentials.updater_proc
140
- end
141
-
142
- package_version = Google::Cloud::Debugger::VERSION
143
-
144
- google_api_client = "gl-ruby/#{RUBY_VERSION}"
145
- google_api_client << " #{lib_name}/#{lib_version}" if lib_name
146
- google_api_client << " gapic/#{package_version} gax/#{Google::Gax::VERSION}"
147
- google_api_client << " grpc/#{GRPC::VERSION}"
148
- google_api_client.freeze
149
-
150
- headers = { :"x-goog-api-client" => google_api_client }
151
- if credentials.respond_to?(:quota_project_id) && credentials.quota_project_id
152
- headers[:"x-goog-user-project"] = credentials.quota_project_id
153
- end
154
- headers.merge!(metadata) unless metadata.nil?
155
- client_config_file = Pathname.new(__dir__).join(
156
- "debugger2_client_config.json"
157
- )
158
- defaults = client_config_file.open do |f|
159
- Google::Gax.construct_settings(
160
- "google.devtools.clouddebugger.v2.Debugger2",
161
- JSON.parse(f.read),
162
- client_config,
163
- Google::Gax::Grpc::STATUS_CODE_NAMES,
164
- timeout,
165
- errors: Google::Gax::Grpc::API_ERRORS,
166
- metadata: headers
167
- )
168
- end
169
-
170
- # Allow overriding the service path/port in subclasses.
171
- service_path = service_address || self.class::SERVICE_ADDRESS
172
- port = service_port || self.class::DEFAULT_SERVICE_PORT
173
- interceptors = self.class::GRPC_INTERCEPTORS
174
- @debugger2_stub = Google::Gax::Grpc.create_stub(
175
- service_path,
176
- port,
177
- chan_creds: chan_creds,
178
- channel: channel,
179
- updater_proc: updater_proc,
180
- scopes: scopes,
181
- interceptors: interceptors,
182
- &Google::Devtools::Clouddebugger::V2::Debugger2::Stub.method(:new)
183
- )
184
-
185
- @delete_breakpoint = Google::Gax.create_api_call(
186
- @debugger2_stub.method(:delete_breakpoint),
187
- defaults["delete_breakpoint"],
188
- exception_transformer: exception_transformer
189
- )
190
- @set_breakpoint = Google::Gax.create_api_call(
191
- @debugger2_stub.method(:set_breakpoint),
192
- defaults["set_breakpoint"],
193
- exception_transformer: exception_transformer,
194
- params_extractor: proc do |request|
195
- {'debuggee_id' => request.debuggee_id}
196
- end
197
- )
198
- @get_breakpoint = Google::Gax.create_api_call(
199
- @debugger2_stub.method(:get_breakpoint),
200
- defaults["get_breakpoint"],
201
- exception_transformer: exception_transformer
202
- )
203
- @list_breakpoints = Google::Gax.create_api_call(
204
- @debugger2_stub.method(:list_breakpoints),
205
- defaults["list_breakpoints"],
206
- exception_transformer: exception_transformer,
207
- params_extractor: proc do |request|
208
- {'debuggee_id' => request.debuggee_id}
209
- end
210
- )
211
- @list_debuggees = Google::Gax.create_api_call(
212
- @debugger2_stub.method(:list_debuggees),
213
- defaults["list_debuggees"],
214
- exception_transformer: exception_transformer
215
- )
216
- end
217
-
218
- # Service calls
219
-
220
- # Deletes the breakpoint from the debuggee.
221
- #
222
- # @param debuggee_id [String]
223
- # Required. ID of the debuggee whose breakpoint to delete.
224
- # @param breakpoint_id [String]
225
- # Required. ID of the breakpoint to delete.
226
- # @param client_version [String]
227
- # Required. The client version making the call.
228
- # Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
229
- # @param options [Google::Gax::CallOptions]
230
- # Overrides the default settings for this call, e.g, timeout,
231
- # retries, etc.
232
- # @yield [result, operation] Access the result along with the RPC operation
233
- # @yieldparam result []
234
- # @yieldparam operation [GRPC::ActiveCall::Operation]
235
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
236
- # @example
237
- # require "google/cloud/debugger/v2"
238
- #
239
- # debugger2_client = Google::Cloud::Debugger::V2::Debugger2.new
240
- #
241
- # # TODO: Initialize `debuggee_id`:
242
- # debuggee_id = ''
243
- #
244
- # # TODO: Initialize `breakpoint_id`:
245
- # breakpoint_id = ''
246
- #
247
- # # TODO: Initialize `client_version`:
248
- # client_version = ''
249
- # debugger2_client.delete_breakpoint(debuggee_id, breakpoint_id, client_version)
250
-
251
- def delete_breakpoint \
252
- debuggee_id,
253
- breakpoint_id,
254
- client_version,
255
- options: nil,
256
- &block
257
- req = {
258
- debuggee_id: debuggee_id,
259
- breakpoint_id: breakpoint_id,
260
- client_version: client_version
261
- }.delete_if { |_, v| v.nil? }
262
- req = Google::Gax::to_proto(req, Google::Devtools::Clouddebugger::V2::DeleteBreakpointRequest)
263
- @delete_breakpoint.call(req, options, &block)
264
- nil
265
- end
266
-
267
- # Sets the breakpoint to the debuggee.
268
- #
269
- # @param debuggee_id [String]
270
- # Required. ID of the debuggee where the breakpoint is to be set.
271
- # @param breakpoint [Google::Devtools::Clouddebugger::V2::Breakpoint | Hash]
272
- # Required. Breakpoint specification to set.
273
- # The field `location` of the breakpoint must be set.
274
- # A hash of the same form as `Google::Devtools::Clouddebugger::V2::Breakpoint`
275
- # can also be provided.
276
- # @param client_version [String]
277
- # Required. The client version making the call.
278
- # Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
279
- # @param options [Google::Gax::CallOptions]
280
- # Overrides the default settings for this call, e.g, timeout,
281
- # retries, etc.
282
- # @yield [result, operation] Access the result along with the RPC operation
283
- # @yieldparam result [Google::Devtools::Clouddebugger::V2::SetBreakpointResponse]
284
- # @yieldparam operation [GRPC::ActiveCall::Operation]
285
- # @return [Google::Devtools::Clouddebugger::V2::SetBreakpointResponse]
286
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
287
- # @example
288
- # require "google/cloud/debugger/v2"
289
- #
290
- # debugger2_client = Google::Cloud::Debugger::V2::Debugger2.new
291
- #
292
- # # TODO: Initialize `debuggee_id`:
293
- # debuggee_id = ''
294
- #
295
- # # TODO: Initialize `breakpoint`:
296
- # breakpoint = {}
297
- #
298
- # # TODO: Initialize `client_version`:
299
- # client_version = ''
300
- # response = debugger2_client.set_breakpoint(debuggee_id, breakpoint, client_version)
301
-
302
- def set_breakpoint \
303
- debuggee_id,
304
- breakpoint,
305
- client_version,
306
- options: nil,
307
- &block
308
- req = {
309
- debuggee_id: debuggee_id,
310
- breakpoint: breakpoint,
311
- client_version: client_version
312
- }.delete_if { |_, v| v.nil? }
313
- req = Google::Gax::to_proto(req, Google::Devtools::Clouddebugger::V2::SetBreakpointRequest)
314
- @set_breakpoint.call(req, options, &block)
315
- end
316
-
317
- # Gets breakpoint information.
318
- #
319
- # @param debuggee_id [String]
320
- # Required. ID of the debuggee whose breakpoint to get.
321
- # @param breakpoint_id [String]
322
- # Required. ID of the breakpoint to get.
323
- # @param client_version [String]
324
- # Required. The client version making the call.
325
- # Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
326
- # @param options [Google::Gax::CallOptions]
327
- # Overrides the default settings for this call, e.g, timeout,
328
- # retries, etc.
329
- # @yield [result, operation] Access the result along with the RPC operation
330
- # @yieldparam result [Google::Devtools::Clouddebugger::V2::GetBreakpointResponse]
331
- # @yieldparam operation [GRPC::ActiveCall::Operation]
332
- # @return [Google::Devtools::Clouddebugger::V2::GetBreakpointResponse]
333
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
334
- # @example
335
- # require "google/cloud/debugger/v2"
336
- #
337
- # debugger2_client = Google::Cloud::Debugger::V2::Debugger2.new
338
- #
339
- # # TODO: Initialize `debuggee_id`:
340
- # debuggee_id = ''
341
- #
342
- # # TODO: Initialize `breakpoint_id`:
343
- # breakpoint_id = ''
344
- #
345
- # # TODO: Initialize `client_version`:
346
- # client_version = ''
347
- # response = debugger2_client.get_breakpoint(debuggee_id, breakpoint_id, client_version)
348
-
349
- def get_breakpoint \
350
- debuggee_id,
351
- breakpoint_id,
352
- client_version,
353
- options: nil,
354
- &block
355
- req = {
356
- debuggee_id: debuggee_id,
357
- breakpoint_id: breakpoint_id,
358
- client_version: client_version
359
- }.delete_if { |_, v| v.nil? }
360
- req = Google::Gax::to_proto(req, Google::Devtools::Clouddebugger::V2::GetBreakpointRequest)
361
- @get_breakpoint.call(req, options, &block)
362
- end
363
-
364
- # Lists all breakpoints for the debuggee.
365
- #
366
- # @param debuggee_id [String]
367
- # Required. ID of the debuggee whose breakpoints to list.
368
- # @param client_version [String]
369
- # Required. The client version making the call.
370
- # Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
371
- # @param include_all_users [true, false]
372
- # When set to `true`, the response includes the list of breakpoints set by
373
- # any user. Otherwise, it includes only breakpoints set by the caller.
374
- # @param include_inactive [true, false]
375
- # When set to `true`, the response includes active and inactive
376
- # breakpoints. Otherwise, it includes only active breakpoints.
377
- # @param action [Google::Devtools::Clouddebugger::V2::ListBreakpointsRequest::BreakpointActionValue | Hash]
378
- # When set, the response includes only breakpoints with the specified action.
379
- # A hash of the same form as `Google::Devtools::Clouddebugger::V2::ListBreakpointsRequest::BreakpointActionValue`
380
- # can also be provided.
381
- # @param strip_results [true, false]
382
- # This field is deprecated. The following fields are always stripped out of
383
- # the result: `stack_frames`, `evaluated_expressions` and `variable_table`.
384
- # @param wait_token [String]
385
- # A wait token that, if specified, blocks the call until the breakpoints
386
- # list has changed, or a server selected timeout has expired. The value
387
- # should be set from the last response. The error code
388
- # `google.rpc.Code.ABORTED` (RPC) is returned on wait timeout, which
389
- # should be called again with the same `wait_token`.
390
- # @param options [Google::Gax::CallOptions]
391
- # Overrides the default settings for this call, e.g, timeout,
392
- # retries, etc.
393
- # @yield [result, operation] Access the result along with the RPC operation
394
- # @yieldparam result [Google::Devtools::Clouddebugger::V2::ListBreakpointsResponse]
395
- # @yieldparam operation [GRPC::ActiveCall::Operation]
396
- # @return [Google::Devtools::Clouddebugger::V2::ListBreakpointsResponse]
397
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
398
- # @example
399
- # require "google/cloud/debugger/v2"
400
- #
401
- # debugger2_client = Google::Cloud::Debugger::V2::Debugger2.new
402
- #
403
- # # TODO: Initialize `debuggee_id`:
404
- # debuggee_id = ''
405
- #
406
- # # TODO: Initialize `client_version`:
407
- # client_version = ''
408
- # response = debugger2_client.list_breakpoints(debuggee_id, client_version)
409
-
410
- def list_breakpoints \
411
- debuggee_id,
412
- client_version,
413
- include_all_users: nil,
414
- include_inactive: nil,
415
- action: nil,
416
- strip_results: nil,
417
- wait_token: nil,
418
- options: nil,
419
- &block
420
- req = {
421
- debuggee_id: debuggee_id,
422
- client_version: client_version,
423
- include_all_users: include_all_users,
424
- include_inactive: include_inactive,
425
- action: action,
426
- strip_results: strip_results,
427
- wait_token: wait_token
428
- }.delete_if { |_, v| v.nil? }
429
- req = Google::Gax::to_proto(req, Google::Devtools::Clouddebugger::V2::ListBreakpointsRequest)
430
- @list_breakpoints.call(req, options, &block)
431
- end
432
-
433
- # Lists all the debuggees that the user has access to.
434
- #
435
- # @param project [String]
436
- # Required. Project number of a Google Cloud project whose debuggees to list.
437
- # @param client_version [String]
438
- # Required. The client version making the call.
439
- # Schema: `domain/type/version` (e.g., `google.com/intellij/v1`).
440
- # @param include_inactive [true, false]
441
- # When set to `true`, the result includes all debuggees. Otherwise, the
442
- # result includes only debuggees that are active.
443
- # @param options [Google::Gax::CallOptions]
444
- # Overrides the default settings for this call, e.g, timeout,
445
- # retries, etc.
446
- # @yield [result, operation] Access the result along with the RPC operation
447
- # @yieldparam result [Google::Devtools::Clouddebugger::V2::ListDebuggeesResponse]
448
- # @yieldparam operation [GRPC::ActiveCall::Operation]
449
- # @return [Google::Devtools::Clouddebugger::V2::ListDebuggeesResponse]
450
- # @raise [Google::Gax::GaxError] if the RPC is aborted.
451
- # @example
452
- # require "google/cloud/debugger/v2"
453
- #
454
- # debugger2_client = Google::Cloud::Debugger::V2::Debugger2.new
455
- #
456
- # # TODO: Initialize `project`:
457
- # project = ''
458
- #
459
- # # TODO: Initialize `client_version`:
460
- # client_version = ''
461
- # response = debugger2_client.list_debuggees(project, client_version)
462
-
463
- def list_debuggees \
464
- project,
465
- client_version,
466
- include_inactive: nil,
467
- options: nil,
468
- &block
469
- req = {
470
- project: project,
471
- client_version: client_version,
472
- include_inactive: include_inactive
473
- }.delete_if { |_, v| v.nil? }
474
- req = Google::Gax::to_proto(req, Google::Devtools::Clouddebugger::V2::ListDebuggeesRequest)
475
- @list_debuggees.call(req, options, &block)
476
- end
477
- end
478
- end
479
- end
480
- end
481
- end