google-cloud-debugger 0.36.0 → 0.41.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/AUTHENTICATION.md +2 -1
- data/CHANGELOG.md +47 -0
- data/OVERVIEW.md +28 -59
- data/TROUBLESHOOTING.md +2 -8
- data/ext/google/cloud/debugger/debugger_c/tracer.c +8 -33
- data/lib/google-cloud-debugger.rb +14 -15
- data/lib/google/cloud/debugger.rb +18 -16
- data/lib/google/cloud/debugger/breakpoint.rb +8 -8
- data/lib/google/cloud/debugger/breakpoint/evaluator.rb +1 -1
- data/lib/google/cloud/debugger/breakpoint/source_location.rb +3 -3
- data/lib/google/cloud/debugger/breakpoint/stack_frame.rb +5 -5
- data/lib/google/cloud/debugger/breakpoint/status_message.rb +4 -6
- data/lib/google/cloud/debugger/breakpoint/variable.rb +5 -5
- data/lib/google/cloud/debugger/credentials.rb +9 -6
- data/lib/google/cloud/debugger/debuggee.rb +4 -4
- data/lib/google/cloud/debugger/service.rb +25 -66
- data/lib/google/cloud/debugger/version.rb +1 -1
- metadata +12 -70
- data/lib/google/cloud/debugger/v2.rb +0 -243
- data/lib/google/cloud/debugger/v2/controller2_client.rb +0 -373
- data/lib/google/cloud/debugger/v2/controller2_client_config.json +0 -41
- data/lib/google/cloud/debugger/v2/credentials.rb +0 -42
- data/lib/google/cloud/debugger/v2/debugger2_client.rb +0 -481
- data/lib/google/cloud/debugger/v2/debugger2_client_config.json +0 -51
- data/lib/google/cloud/debugger/v2/doc/google/devtools/clouddebugger/v2/controller.rb +0 -91
- data/lib/google/cloud/debugger/v2/doc/google/devtools/clouddebugger/v2/data.rb +0 -443
- data/lib/google/cloud/debugger/v2/doc/google/devtools/clouddebugger/v2/debugger.rb +0 -151
- data/lib/google/cloud/debugger/v2/doc/google/devtools/source/v1/source_context.rb +0 -162
- data/lib/google/cloud/debugger/v2/doc/google/protobuf/empty.rb +0 -29
- data/lib/google/cloud/debugger/v2/doc/google/protobuf/timestamp.rb +0 -113
- data/lib/google/devtools/clouddebugger/v2/controller_pb.rb +0 -50
- data/lib/google/devtools/clouddebugger/v2/controller_services_pb.rb +0 -98
- data/lib/google/devtools/clouddebugger/v2/data_pb.rb +0 -108
- data/lib/google/devtools/clouddebugger/v2/debugger_pb.rb +0 -77
- data/lib/google/devtools/clouddebugger/v2/debugger_services_pb.rb +0 -66
- data/lib/google/devtools/source/v1/source_context_pb.rb +0 -90
@@ -67,8 +67,6 @@ module Google
|
|
67
67
|
# * `https://www.googleapis.com/auth/logging.admin`
|
68
68
|
#
|
69
69
|
# @param [Integer] timeout Default timeout to use in requests. Optional.
|
70
|
-
# @param [Hash] client_config A hash of values to override the default
|
71
|
-
# behavior of the API client. Optional.
|
72
70
|
# @param [String] endpoint Override of the endpoint host name. Optional.
|
73
71
|
# If the param is nil, uses the default endpoint.
|
74
72
|
# @param [String] project Project identifier for the Stackdriver Debugger
|
@@ -84,15 +82,20 @@ module Google
|
|
84
82
|
# debugger = Google::Cloud::Debugger.new
|
85
83
|
# debugger.start
|
86
84
|
#
|
87
|
-
def self.new project_id: nil,
|
88
|
-
|
89
|
-
|
85
|
+
def self.new project_id: nil,
|
86
|
+
credentials: nil,
|
87
|
+
service_name: nil,
|
88
|
+
service_version: nil,
|
89
|
+
scope: nil,
|
90
|
+
timeout: nil,
|
91
|
+
endpoint: nil,
|
92
|
+
project: nil,
|
93
|
+
keyfile: nil
|
90
94
|
project_id ||= (project || default_project_id)
|
91
95
|
service_name ||= default_service_name
|
92
96
|
service_version ||= default_service_version
|
93
97
|
scope ||= configure.scope
|
94
98
|
timeout ||= configure.timeout
|
95
|
-
client_config ||= configure.client_config
|
96
99
|
endpoint ||= configure.endpoint
|
97
100
|
|
98
101
|
service_name = service_name.to_s
|
@@ -114,14 +117,8 @@ module Google
|
|
114
117
|
project_id = project_id.to_s # Always cast to a string
|
115
118
|
raise ArgumentError, "project_id is missing" if project_id.empty?
|
116
119
|
|
117
|
-
Debugger::
|
118
|
-
|
119
|
-
project_id, credentials,
|
120
|
-
host: endpoint, timeout: timeout, client_config: client_config
|
121
|
-
),
|
122
|
-
service_name: service_name,
|
123
|
-
service_version: service_version
|
124
|
-
)
|
120
|
+
service = Debugger::Service.new project_id, credentials, host: endpoint, timeout: timeout
|
121
|
+
Debugger::Project.new service, service_name: service_name, service_version: service_version
|
125
122
|
end
|
126
123
|
|
127
124
|
# rubocop:enable all
|
@@ -147,8 +144,6 @@ module Google
|
|
147
144
|
# * `scope` - (String, Array<String>) The OAuth 2.0 scopes controlling
|
148
145
|
# the set of resources and operations that the connection can access.
|
149
146
|
# * `timeout` - (Integer) Default timeout to use in requests.
|
150
|
-
# * `client_config` - (Hash) A hash of values to override the default
|
151
|
-
# behavior of the API client.
|
152
147
|
# * `endpoint` - (String) Override of the endpoint host name, or `nil`
|
153
148
|
# to use the default endpoint.
|
154
149
|
# * `allow_mutating_methods` - (boolean) Whether expressions and
|
@@ -254,4 +249,11 @@ module Google
|
|
254
249
|
end
|
255
250
|
end
|
256
251
|
end
|
252
|
+
|
253
|
+
# Aliases for compatibility with older spellings.
|
254
|
+
# @private
|
255
|
+
module Devtools
|
256
|
+
# @private
|
257
|
+
Clouddebugger = ::Google::Cloud::Debugger unless const_defined? :Clouddebugger
|
258
|
+
end
|
257
259
|
end
|
@@ -30,7 +30,7 @@ module Google
|
|
30
30
|
#
|
31
31
|
# Abstract class that represents a breakpoint, which can be set and
|
32
32
|
# triggered in a debuggee application. Maps to gRPC struct
|
33
|
-
# {Google::
|
33
|
+
# {Google::Cloud::Debugger::V2::Breakpoint}.
|
34
34
|
#
|
35
35
|
class Breakpoint
|
36
36
|
include MonitorMixin
|
@@ -174,7 +174,7 @@ module Google
|
|
174
174
|
|
175
175
|
##
|
176
176
|
# @private New Google::Cloud::Debugger::Breakpoint
|
177
|
-
# from a Google::
|
177
|
+
# from a Google::Cloud::Debugger::V2::Breakpoint object.
|
178
178
|
def self.from_grpc grpc
|
179
179
|
return new if grpc.nil?
|
180
180
|
|
@@ -337,9 +337,9 @@ module Google
|
|
337
337
|
|
338
338
|
##
|
339
339
|
# @private Exports the Breakpoint to a
|
340
|
-
# Google::
|
340
|
+
# Google::Cloud::Debugger::V2::Breakpoint object.
|
341
341
|
def to_grpc
|
342
|
-
Google::
|
342
|
+
Google::Cloud::Debugger::V2::Breakpoint.new(
|
343
343
|
id: id.to_s,
|
344
344
|
location: location.to_grpc,
|
345
345
|
condition: condition.to_s,
|
@@ -398,7 +398,7 @@ module Google
|
|
398
398
|
|
399
399
|
##
|
400
400
|
# @private Formats the labels so they can be saved to a
|
401
|
-
# Google::
|
401
|
+
# Google::Cloud::Debugger::V2::Breakpoint object.
|
402
402
|
def labels_to_grpc
|
403
403
|
# Coerce symbols to strings
|
404
404
|
Hash[labels.map do |k, v|
|
@@ -408,21 +408,21 @@ module Google
|
|
408
408
|
|
409
409
|
##
|
410
410
|
# @private Exports the Breakpoint stack_frames to an array of
|
411
|
-
# Google::
|
411
|
+
# Google::Cloud::Debugger::V2::StackFrame objects.
|
412
412
|
def stack_frames_to_grpc
|
413
413
|
stack_frames.nil? ? [] : stack_frames.map(&:to_grpc)
|
414
414
|
end
|
415
415
|
|
416
416
|
##
|
417
417
|
# @private Exports the Breakpoint stack_frames to an array of
|
418
|
-
# Google::
|
418
|
+
# Google::Cloud::Debugger::V2::Variable objects.
|
419
419
|
def evaluated_expressions_to_grpc
|
420
420
|
evaluated_expressions.nil? ? [] : evaluated_expressions.map(&:to_grpc)
|
421
421
|
end
|
422
422
|
|
423
423
|
##
|
424
424
|
# @private Exports Breakpoint status to
|
425
|
-
# Google::
|
425
|
+
# Google::Cloud::Debugger::V2::StatusMessage object
|
426
426
|
def status_to_grpc
|
427
427
|
status.nil? ? nil : status.to_grpc
|
428
428
|
end
|
@@ -89,7 +89,7 @@ module Google
|
|
89
89
|
##
|
90
90
|
# @private Predefined regex. Saves time during runtime.
|
91
91
|
FUNC_CALL_FLAG_BLACKLIST_REGEX =
|
92
|
-
/<
|
92
|
+
/<call(info|data)!.+#{FUNC_CALL_FLAG_BLACKLIST.join '|'}/.freeze
|
93
93
|
|
94
94
|
##
|
95
95
|
# @private Predefined regex. Saves time during runtime.
|
@@ -41,7 +41,7 @@ module Google
|
|
41
41
|
|
42
42
|
##
|
43
43
|
# @private New Google::Cloud::Debugger::Breakpoint::SourceLocation
|
44
|
-
# from a Google::
|
44
|
+
# from a Google::Cloud::Debugger::V2::SourceLocation object.
|
45
45
|
def self.from_grpc grpc
|
46
46
|
return new if grpc.nil?
|
47
47
|
new.tap do |o|
|
@@ -59,10 +59,10 @@ module Google
|
|
59
59
|
|
60
60
|
##
|
61
61
|
# @private Exports the SourceLocation to a
|
62
|
-
# Google::
|
62
|
+
# Google::Cloud::Debugger::V2::SourceLocation object.
|
63
63
|
def to_grpc
|
64
64
|
return nil if empty?
|
65
|
-
Google::
|
65
|
+
Google::Cloud::Debugger::V2::SourceLocation.new(
|
66
66
|
path: path.to_s,
|
67
67
|
line: line
|
68
68
|
)
|
@@ -55,7 +55,7 @@ module Google
|
|
55
55
|
|
56
56
|
##
|
57
57
|
# @private New Google::Cloud::Debugger::Breakpoint::SourceLocation
|
58
|
-
# from a Google::
|
58
|
+
# from a Google::Cloud::Debugger::V2::SourceLocation object.
|
59
59
|
def self.from_grpc grpc
|
60
60
|
new.tap do |o|
|
61
61
|
o.function = grpc.function
|
@@ -76,10 +76,10 @@ module Google
|
|
76
76
|
|
77
77
|
##
|
78
78
|
# @private Exports the StackFrame to a
|
79
|
-
# Google::
|
79
|
+
# Google::Cloud::Debugger::V2::StackFrame object.
|
80
80
|
def to_grpc
|
81
81
|
return nil if empty?
|
82
|
-
Google::
|
82
|
+
Google::Cloud::Debugger::V2::StackFrame.new(
|
83
83
|
function: function.to_s,
|
84
84
|
location: location.to_grpc,
|
85
85
|
arguments: arguments_to_grpc,
|
@@ -91,14 +91,14 @@ module Google
|
|
91
91
|
|
92
92
|
##
|
93
93
|
# @private Exports the StackFrame arguments to an array of
|
94
|
-
# Google::
|
94
|
+
# Google::Cloud::Debugger::V2::Variable objects.
|
95
95
|
def arguments_to_grpc
|
96
96
|
arguments.nil? ? [] : arguments.map(&:to_grpc)
|
97
97
|
end
|
98
98
|
|
99
99
|
##
|
100
100
|
# @private Exports the StackFrame locals to an array of
|
101
|
-
# Google::
|
101
|
+
# Google::Cloud::Debugger::V2::Variable objects.
|
102
102
|
def locals_to_grpc
|
103
103
|
locals.nil? ? [] : locals.map(&:to_grpc)
|
104
104
|
end
|
@@ -50,7 +50,7 @@ module Google
|
|
50
50
|
|
51
51
|
##
|
52
52
|
# New Google::Cloud::Debugger::Breakpoint::StatusMessage
|
53
|
-
# from a Google::
|
53
|
+
# from a Google::Cloud::Debugger::V2::StatusMessage object.
|
54
54
|
def self.from_grpc grpc
|
55
55
|
return nil if grpc.nil?
|
56
56
|
new.tap do |s|
|
@@ -76,14 +76,12 @@ module Google
|
|
76
76
|
|
77
77
|
##
|
78
78
|
# Exports the StatusMessage to a
|
79
|
-
# Google::
|
79
|
+
# Google::Cloud::Debugger::V2::StatusMessage object.
|
80
80
|
def to_grpc
|
81
81
|
return nil if empty?
|
82
|
-
description_grpc =
|
83
|
-
Google::Devtools::Clouddebugger::V2::FormatMessage.new \
|
84
|
-
format: description.to_s
|
82
|
+
description_grpc = Google::Cloud::Debugger::V2::FormatMessage.new format: description.to_s
|
85
83
|
|
86
|
-
Google::
|
84
|
+
Google::Cloud::Debugger::V2::StatusMessage.new \
|
87
85
|
is_error: true,
|
88
86
|
refers_to: refers_to,
|
89
87
|
description: description_grpc
|
@@ -408,7 +408,7 @@ module Google
|
|
408
408
|
|
409
409
|
##
|
410
410
|
# @private New Google::Cloud::Debugger::Breakpoint::Variable
|
411
|
-
# from a Google::
|
411
|
+
# from a Google::Cloud::Debugger::V2::Variable object.
|
412
412
|
def self.from_grpc grpc
|
413
413
|
return new if grpc.nil?
|
414
414
|
new.tap do |o|
|
@@ -423,7 +423,7 @@ module Google
|
|
423
423
|
|
424
424
|
##
|
425
425
|
# @private New array of Google::Cloud::Debugger::Breakpoint::Variable
|
426
|
-
# from an array of Google::
|
426
|
+
# from an array of Google::Cloud::Debugger::V2::Variable
|
427
427
|
# objects.
|
428
428
|
def self.from_grpc_list grpc_list
|
429
429
|
return [] if grpc_list.nil?
|
@@ -458,10 +458,10 @@ module Google
|
|
458
458
|
|
459
459
|
##
|
460
460
|
# Exports the Variable to a
|
461
|
-
# Google::
|
461
|
+
# Google::Cloud::Debugger::V2::Variable object.
|
462
462
|
def to_grpc
|
463
463
|
return nil if empty?
|
464
|
-
Google::
|
464
|
+
Google::Cloud::Debugger::V2::Variable.new(
|
465
465
|
name: name.to_s,
|
466
466
|
value: value.to_s,
|
467
467
|
type: type.to_s,
|
@@ -584,7 +584,7 @@ module Google
|
|
584
584
|
|
585
585
|
##
|
586
586
|
# @private Exports the Variable members to an array of
|
587
|
-
# Google::
|
587
|
+
# Google::Cloud::Debugger::V2::Variable objects.
|
588
588
|
def members_to_grpc
|
589
589
|
members.nil? ? nil : members.map(&:to_grpc)
|
590
590
|
end
|
@@ -12,9 +12,7 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
|
16
|
-
require "google/cloud/debugger/v2/credentials"
|
17
|
-
require "google/cloud/logging/credentials"
|
15
|
+
require "google/cloud/debugger/v2/debugger/credentials"
|
18
16
|
|
19
17
|
module Google
|
20
18
|
module Cloud
|
@@ -38,9 +36,14 @@ module Google
|
|
38
36
|
#
|
39
37
|
# debugger.project_id #=> "my-project"
|
40
38
|
#
|
41
|
-
class Credentials < Google::Cloud::Debugger::V2::Credentials
|
42
|
-
|
43
|
-
|
39
|
+
class Credentials < Google::Cloud::Debugger::V2::Debugger::Credentials
|
40
|
+
self.scope = [
|
41
|
+
"https://www.googleapis.com/auth/cloud-platform",
|
42
|
+
"https://www.googleapis.com/auth/cloud_debugger",
|
43
|
+
"https://www.googleapis.com/auth/logging.admin",
|
44
|
+
"https://www.googleapis.com/auth/logging.read",
|
45
|
+
"https://www.googleapis.com/auth/logging.write"
|
46
|
+
]
|
44
47
|
end
|
45
48
|
end
|
46
49
|
end
|
@@ -28,7 +28,7 @@ module Google
|
|
28
28
|
#
|
29
29
|
# Represent a debuggee application. Contains information that identifies
|
30
30
|
# debuggee applications from each other. Maps to gRPC struct
|
31
|
-
#
|
31
|
+
# Google::Cloud::Debugger::V2::Debuggee.
|
32
32
|
#
|
33
33
|
# It also automatically loads source context information generated from
|
34
34
|
# Cloud SDK. See [Stackdriver Debugger
|
@@ -111,10 +111,10 @@ module Google
|
|
111
111
|
|
112
112
|
##
|
113
113
|
# Convert this debuggee into a gRPC
|
114
|
-
# Google::
|
114
|
+
# Google::Cloud::Debugger::V2::Debuggee struct.
|
115
115
|
def to_grpc
|
116
116
|
source_context = source_context_from_json_file "source-context.json"
|
117
|
-
Google::
|
117
|
+
Google::Cloud::Debugger::V2::Debuggee.new(
|
118
118
|
id: id.to_s,
|
119
119
|
project: project_id_for_request_arg.to_s,
|
120
120
|
description: description.to_s,
|
@@ -179,7 +179,7 @@ module Google
|
|
179
179
|
# project ID if available (and if it matches the project set in the
|
180
180
|
# configuration). Otherwise, use the configured project.
|
181
181
|
def project_id_for_request_arg
|
182
|
-
if project_id == @env.
|
182
|
+
if project_id == @env.lookup_metadata("project", "project-id")
|
183
183
|
numeric_id = @env.numeric_project_id
|
184
184
|
return numeric_id.to_s if numeric_id
|
185
185
|
end
|
@@ -16,7 +16,6 @@
|
|
16
16
|
require "google/cloud/errors"
|
17
17
|
require "google/cloud/debugger/version"
|
18
18
|
require "google/cloud/debugger/v2"
|
19
|
-
require "google/gax/errors"
|
20
19
|
require "uri"
|
21
20
|
|
22
21
|
module Google
|
@@ -26,103 +25,63 @@ module Google
|
|
26
25
|
# @private Represents the gRPC Debugger service, including all the API
|
27
26
|
# methods.
|
28
27
|
class Service
|
29
|
-
attr_accessor :project, :credentials, :timeout, :
|
28
|
+
attr_accessor :project, :credentials, :timeout, :host
|
30
29
|
|
31
30
|
##
|
32
31
|
# Creates a new Service instance.
|
33
|
-
def initialize project, credentials, timeout: nil,
|
34
|
-
host: nil
|
32
|
+
def initialize project, credentials, timeout: nil, host: nil
|
35
33
|
@project = project
|
36
34
|
@credentials = credentials
|
37
35
|
@timeout = timeout
|
38
|
-
@
|
39
|
-
@host = host || V2::Debugger2Client::SERVICE_ADDRESS
|
36
|
+
@host = host
|
40
37
|
end
|
41
38
|
|
42
39
|
def cloud_debugger
|
43
40
|
return mocked_debugger if mocked_debugger
|
44
41
|
@cloud_debugger ||=
|
45
|
-
V2::
|
46
|
-
credentials
|
47
|
-
timeout
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
)
|
42
|
+
V2::Controller::Client.new do |config|
|
43
|
+
config.credentials = credentials if credentials
|
44
|
+
config.timeout = timeout if timeout
|
45
|
+
config.endpoint = host if host
|
46
|
+
config.lib_name = "gccl"
|
47
|
+
config.lib_version = Google::Cloud::Debugger::VERSION
|
48
|
+
config.metadata = { "google-cloud-resource-prefix" => "projects/#{@project}" }
|
49
|
+
end
|
54
50
|
end
|
55
51
|
attr_accessor :mocked_debugger
|
56
52
|
|
57
53
|
def transmitter
|
58
54
|
return mocked_transmitter if mocked_transmitter
|
59
55
|
@transmitter ||=
|
60
|
-
V2::
|
61
|
-
credentials
|
62
|
-
timeout
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
)
|
56
|
+
V2::Controller::Client.new do |config|
|
57
|
+
config.credentials = credentials if credentials
|
58
|
+
config.timeout = timeout if timeout
|
59
|
+
config.endpoint = host if host
|
60
|
+
config.lib_name = "gccl"
|
61
|
+
config.lib_version = Google::Cloud::Debugger::VERSION
|
62
|
+
config.metadata = { "google-cloud-resource-prefix" => "projects/#{@project}" }
|
63
|
+
end
|
69
64
|
end
|
70
65
|
attr_accessor :mocked_transmitter
|
71
66
|
|
72
67
|
def register_debuggee debuggee_grpc
|
73
|
-
|
74
|
-
cloud_debugger.register_debuggee debuggee_grpc,
|
75
|
-
options: default_options
|
76
|
-
end
|
68
|
+
cloud_debugger.register_debuggee debuggee: debuggee_grpc
|
77
69
|
end
|
78
70
|
|
79
71
|
def list_active_breakpoints debuggee_id, wait_token
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
success_on_timeout: true,
|
84
|
-
options: default_options
|
85
|
-
end
|
72
|
+
cloud_debugger.list_active_breakpoints debuggee_id: debuggee_id.to_s,
|
73
|
+
wait_token: wait_token.to_s,
|
74
|
+
success_on_timeout: true
|
86
75
|
end
|
87
76
|
|
88
77
|
def update_active_breakpoint debuggee_id, breakpoint
|
89
|
-
|
90
|
-
|
91
|
-
breakpoint.to_grpc,
|
92
|
-
options: default_options
|
93
|
-
end
|
78
|
+
transmitter.update_active_breakpoint debuggee_id: debuggee_id.to_s,
|
79
|
+
breakpoint: breakpoint.to_grpc
|
94
80
|
end
|
95
81
|
|
96
82
|
def inspect
|
97
83
|
"#{self.class}(#{@project})"
|
98
84
|
end
|
99
|
-
|
100
|
-
protected
|
101
|
-
|
102
|
-
def service_address
|
103
|
-
return nil if host.nil?
|
104
|
-
URI.parse("//#{host}").host
|
105
|
-
end
|
106
|
-
|
107
|
-
def service_port
|
108
|
-
return nil if host.nil?
|
109
|
-
URI.parse("//#{host}").port
|
110
|
-
end
|
111
|
-
|
112
|
-
def default_headers
|
113
|
-
{ "google-cloud-resource-prefix" => "projects/#{@project}" }
|
114
|
-
end
|
115
|
-
|
116
|
-
def default_options
|
117
|
-
Google::Gax::CallOptions.new kwargs: default_headers
|
118
|
-
end
|
119
|
-
|
120
|
-
def execute
|
121
|
-
yield
|
122
|
-
rescue Google::Gax::GaxError => e
|
123
|
-
# GaxError wraps BadStatus, but exposes it as #cause
|
124
|
-
raise Google::Cloud::Error.from_error(e.cause)
|
125
|
-
end
|
126
85
|
end
|
127
86
|
end
|
128
87
|
end
|