ruby-debug-ide 0.7.1.beta1 → 0.7.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 54f5939fc76c5dcd8d5fa63a827c0b32cb5b36514dc4ae57fac44d8d996d498c
4
- data.tar.gz: 06e8f1a385aa1b7b26105bb157168c9ddecd4b3c2fb71b9859e3ee3bea18779e
3
+ metadata.gz: dd68f6b14a9e6741f50453d3a0495ca8e4bc1b3079ba745ccd73909bbceed884
4
+ data.tar.gz: c92c8fc774c5d9706e4c769e54de0a3402dff9859ebbf8b8f4dd0b51adeeff36
5
5
  SHA512:
6
- metadata.gz: b605c0533d6620318411b5e0d66c4c1698edfc34a93b1f02057b1730e49c9fdfc83ee98c69774ab278f688fd2fdc9766594bee9490635f5024a434469eddb61d
7
- data.tar.gz: 68804aab601563a291f1d00c80a0cf525d7fb9331c83d7b04bcb7182badc2ef327c6fff4989a390ac4a589d1692c8b274b02da0a2efae23b2ca13e3de6ba9a7e
6
+ metadata.gz: 7eea8a0e35f9e2ac5f26d26e64627a9d9291e44d2e42bacd44af2700d73e7de2ca972fa255363c4bd6a7bba9177a458ac8c937240f1899c02ff504a088116edf
7
+ data.tar.gz: a7bc78d51b9f1ebafdbf19de69b31644b165ccc315e23644204b87dfeacb4eaaec2e6e0a8ce9140141a08c8f24b80fc775db5d0e9a0069eb4eacd6dfd417e299
data/Rakefile CHANGED
@@ -39,4 +39,55 @@ task :changelog, :since_c, :until_c do |t,args|
39
39
  end
40
40
 
41
41
  puts changelog_content
42
+ end
43
+
44
+ desc "Generates travis.yaml"
45
+ task :gen_travis do
46
+ versions = []
47
+
48
+ def versions.add(major:, minor:, include_macos: true)
49
+ self << { major: major, minor: [minor], include_macos: include_macos }
50
+ end
51
+
52
+ versions.add major: '3.0', minor: 1
53
+ versions.add major: '2.7', minor: 3
54
+ versions.add major: '2.6', minor: 7
55
+ versions.add major: '2.5', minor: 9
56
+ versions.add major: '2.4', minor: 10
57
+ versions.add major: '2.3', minor: 8, include_macos: false
58
+ versions.add major: '2.2', minor: 10, include_macos: false
59
+ versions.add major: '2.1', minor: 10, include_macos: false
60
+ versions.add major: '2.0', minor: 0, include_macos: false
61
+ versions.add major: '1.9', minor: 3, include_macos: false
62
+ versions.add major: '1.8', minor: 7, include_macos: false
63
+
64
+ puts <<EOM
65
+ language: ruby
66
+ dist: trusty
67
+ matrix:
68
+ fast_finish: true
69
+ include:
70
+ EOM
71
+
72
+ loop do
73
+ found_some = false
74
+
75
+ versions.each do |version|
76
+ minor = version[:minor].pop
77
+ if minor
78
+ found_some = true
79
+ full_version = "#{version[:major]}.#{minor}"
80
+ puts <<EOM
81
+ - os: linux
82
+ rvm: #{full_version}
83
+ EOM
84
+ puts <<EOM if version[:include_macos]
85
+ - os: osx
86
+ rvm: #{full_version}
87
+ EOM
88
+ end
89
+ end
90
+
91
+ break unless found_some
92
+ end
42
93
  end
data/bin/rdebug-ide CHANGED
@@ -29,7 +29,8 @@ options = OpenStruct.new(
29
29
  'value_as_nested_element' => false,
30
30
  'attach_mode' => false,
31
31
  'cli_debug' => false,
32
- 'key_value_mode' => false
32
+ 'key_value_mode' => false,
33
+ 'socket_path' => nil
33
34
  )
34
35
 
35
36
  opts = OptionParser.new do |opts|
@@ -100,6 +101,9 @@ EOB
100
101
  opts.on("--value-as-nested-element", "Allow to pass variable's value as nested element instead of attribute") do
101
102
  options.value_as_nested_element = true
102
103
  end
104
+ opts.on("--socket-path PATH", "Listen for debugger on the given UNIX domain socket path") do |path|
105
+ options.socket_path = path
106
+ end
103
107
  opts.separator ""
104
108
  opts.separator "Common options:"
105
109
  opts.on_tail("-v", "--version", "Show version") do
data/ext/mkrf_conf.rb CHANGED
@@ -2,11 +2,6 @@ install_dir = File.expand_path("../../../..", __FILE__)
2
2
  jruby = defined?(JRUBY_VERSION) || (defined?(RUBY_ENGINE) && 'jruby' == RUBY_ENGINE)
3
3
  rbx = defined?(RUBY_ENGINE) && 'rbx' == RUBY_ENGINE
4
4
 
5
- def already_installed(dep)
6
- !Gem::DependencyInstaller.new(:domain => :local).find_gems_with_sources(dep).empty? ||
7
- !Gem::DependencyInstaller.new(:domain => :local,:prerelease => true).find_gems_with_sources(dep).empty?
8
- end
9
-
10
5
  unless jruby || rbx
11
6
  require 'rubygems'
12
7
  require 'rubygems/command.rb'
@@ -15,14 +10,14 @@ unless jruby || rbx
15
10
 
16
11
  begin
17
12
  Gem::Command.build_args = ARGV
18
- rescue NoMethodError
13
+ rescue NoMethodError
19
14
  end
20
15
 
21
16
  if RUBY_VERSION < "1.9"
22
17
  dep = Gem::Dependency.new("ruby-debug-base", '>=0.10.4')
23
18
  elsif RUBY_VERSION < '2.0'
24
19
  dep = Gem::Dependency.new("ruby-debug-base19x", '>=0.11.30.pre15')
25
- else
20
+ else
26
21
  dep = Gem::Dependency.new("debase", '> 0')
27
22
  end
28
23
 
@@ -39,7 +34,7 @@ unless jruby || rbx
39
34
  puts e.backtrace.join "\n "
40
35
  exit(1)
41
36
  end
42
- end unless dep.nil? || already_installed(dep)
37
+ end unless dep.nil? || dep.matching_specs.any?
43
38
  end
44
39
 
45
40
  # create dummy rakefile to indicate success
@@ -23,7 +23,7 @@ module Debugger
23
23
  return unless pos
24
24
  breakpoints.each do |b|
25
25
  if b.id == pos
26
- b.expr = @match[2].empty? ? nil : @match[2]
26
+ b.expr = @match[2].empty? ? nil : Command.unescape_incoming(@match[2])
27
27
  print_contdition_set(b.id)
28
28
  break
29
29
  end
@@ -10,7 +10,7 @@ require 'ruby-debug-ide/ide_processor'
10
10
  module Debugger
11
11
 
12
12
  class << self
13
- def print_greeting_msg(stream, host, port, debugger_name = "Fast")
13
+ def print_greeting_msg(stream, host, port, debugger_name = "Fast", socket_path = nil)
14
14
  base_gem_name = if defined?(JRUBY_VERSION) || RUBY_VERSION < '1.9.0'
15
15
  'ruby-debug-base'
16
16
  elsif RUBY_VERSION < '2.0.0'
@@ -27,6 +27,8 @@ module Debugger
27
27
 
28
28
  if host && port
29
29
  listens_on = " listens on #{host}:#{port}\n"
30
+ elsif socket_path
31
+ listens_on = " listens on #{socket_path}\n"
30
32
  else
31
33
  listens_on = "\n"
32
34
  end
@@ -37,4 +39,4 @@ module Debugger
37
39
  end
38
40
  end
39
41
 
40
- end
42
+ end
@@ -8,7 +8,7 @@ module Debugger
8
8
  end
9
9
 
10
10
  Object.const_set :OldThread, ::Thread
11
- Object.send :remove_const, :Thread
11
+ Object.__send__ :remove_const, :Thread
12
12
  Object.const_set :Thread, ::Debugger::DebugThread
13
13
  end
14
14
 
@@ -18,9 +18,9 @@ module Debugger
18
18
  return
19
19
  end
20
20
 
21
- Object.send :remove_const, :Thread
21
+ Object.__send__ :remove_const, :Thread
22
22
  Object.const_set :Thread, ::OldThread
23
- Object.send :remove_const, :OldThread
23
+ Object.__send__ :remove_const, :OldThread
24
24
  end
25
25
  end
26
26
  end
@@ -1,3 +1,3 @@
1
1
  module Debugger
2
- IDE_VERSION='0.7.1.beta1'
2
+ IDE_VERSION='0.7.3'
3
3
  end
@@ -161,6 +161,11 @@ module Debugger
161
161
  else
162
162
  name = exec_with_allocation_control(k, :to_s, OverflowMessageType::EXCEPTION_MESSAGE)
163
163
  end
164
+
165
+ if k.nil?
166
+ name = 'nil'
167
+ end
168
+
164
169
  print_variable(name, v, 'instance')
165
170
  }
166
171
  end
@@ -203,13 +208,13 @@ module Debugger
203
208
  end
204
209
 
205
210
  def exec_with_allocation_control(value, exec_method, overflow_message_type)
206
- return value.send exec_method unless Debugger.trace_to_s
211
+ return value.__send__ exec_method unless Debugger.trace_to_s
207
212
 
208
213
  memory_limit = Debugger.debugger_memory_limit
209
214
  time_limit = Debugger.inspect_time_limit
210
215
 
211
216
  if defined?(JRUBY_VERSION) || RUBY_VERSION < '2.0' || memory_limit <= 0
212
- return exec_with_timeout(time_limit * 1e-3, "Timeout: evaluation of #{exec_method} took longer than #{time_limit}ms.") { value.send exec_method }
217
+ return exec_with_timeout(time_limit * 1e-3, "Timeout: evaluation of #{exec_method} took longer than #{time_limit}ms.") { value.__send__ exec_method }
213
218
  end
214
219
 
215
220
  require 'objspace'
@@ -240,7 +245,7 @@ module Debugger
240
245
  end
241
246
  end
242
247
  trace_point.enable
243
- result = value.send exec_method
248
+ result = value.__send__ exec_method
244
249
  trace_queue << result
245
250
  trace_point.disable
246
251
  end
@@ -74,16 +74,22 @@ module Debugger
74
74
  end
75
75
 
76
76
  def start_server(host = nil, port = 1234, notify_dispatcher = false)
77
- return if started?
78
- start
79
- start_control(host, port, notify_dispatcher)
77
+ _start_server_common(host, port, nil, notify_dispatcher)
78
+ end
79
+
80
+ def start_server_unix(socket_path, notify_dispatcher = false)
81
+ _start_server_common(nil, 0, socket_path, notify_dispatcher)
80
82
  end
81
83
 
82
84
  def prepare_debugger(options)
83
85
  @mutex = Mutex.new
84
86
  @proceed = ConditionVariable.new
85
87
 
86
- start_server(options.host, options.port, options.notify_dispatcher)
88
+ if options.socket_path.nil?
89
+ start_server(options.host, options.port, options.notify_dispatcher)
90
+ else
91
+ start_server_unix(options.socket_path, options.notify_dispatcher)
92
+ end
87
93
 
88
94
  raise "Control thread did not start (#{@control_thread}}" unless @control_thread && @control_thread.alive?
89
95
 
@@ -112,24 +118,53 @@ module Debugger
112
118
  end
113
119
 
114
120
  def start_control(host, port, notify_dispatcher)
121
+ _start_control_common(host, port, nil, notify_dispatcher)
122
+ end
123
+
124
+ def start_control_unix(socket_path, notify_dispatcher)
125
+ _start_control_common(nil, 0, socket_path, notify_dispatcher)
126
+ end
127
+
128
+ private
129
+
130
+ def _start_server_common(host, port, socket_path, notify_dispatcher)
131
+ return if started?
132
+ start
133
+ _start_control_common(host, port, socket_path, notify_dispatcher)
134
+ end
135
+
136
+ def _start_control_common(host, port, socket_path, notify_dispatcher)
115
137
  raise "Debugger is not started" unless started?
116
138
  return if @control_thread
117
139
  @control_thread = DebugThread.new do
118
140
  begin
119
- # 127.0.0.1 seemingly works with all systems and with IPv6 as well.
120
- # "localhost" and nil have problems on some systems.
121
- host ||= '127.0.0.1'
122
-
123
- server = notify_dispatcher_if_needed(host, port, notify_dispatcher) do |real_port, port_changed|
124
- s = TCPServer.new(host, real_port)
125
- print_greeting_msg $stderr, host, real_port, port_changed ? "Subprocess" : "Fast" if defined? IDE_VERSION
126
- s
141
+ if socket_path.nil?
142
+ # 127.0.0.1 seemingly works with all systems and with IPv6 as well.
143
+ # "localhost" and nil have problems on some systems.
144
+ host ||= '127.0.0.1'
145
+
146
+ server = notify_dispatcher_if_needed(host, port, notify_dispatcher) do |real_port, port_changed|
147
+ s = TCPServer.new(host, real_port)
148
+ print_greeting_msg $stderr, host, real_port, port_changed ? "Subprocess" : "Fast" if defined? IDE_VERSION
149
+ s
150
+ end
151
+ else
152
+ raise "Cannot specify host and socket_file at the same time" if host
153
+ File.delete(socket_path) if File.exist?(socket_path)
154
+ server = UNIXServer.new(socket_path)
155
+ print_greeting_msg $stderr, nil, nil, "Fast", socket_path if defined? IDE_VERSION
127
156
  end
128
157
 
129
158
  return unless server
130
159
 
131
160
  while (session = server.accept)
132
- $stderr.puts "Connected from #{session.peeraddr[2]}" if Debugger.cli_debug
161
+ if Debugger.cli_debug
162
+ if session.peeraddr == 'AF_INET'
163
+ $stderr.puts "Connected from #{session.peeraddr[2]}"
164
+ else
165
+ $stderr.puts "Connected from local client"
166
+ end
167
+ end
133
168
  dispatcher = ENV['IDE_PROCESS_DISPATCHER']
134
169
  if dispatcher
135
170
  ENV['IDE_PROCESS_DISPATCHER'] = "#{session.peeraddr[2]}:#{dispatcher}" unless dispatcher.include?(":")
@@ -153,8 +188,6 @@ module Debugger
153
188
  end
154
189
  end
155
190
 
156
- private
157
-
158
191
  def notify_dispatcher_if_needed(host, port, need_notify)
159
192
  return yield port unless need_notify
160
193
 
@@ -30,8 +30,8 @@ EOF
30
30
 
31
31
  spec.version = RUBY_DEBUG_IDE_VERSION
32
32
 
33
- spec.author = "Markus Barchfeld, Martin Krauskopf, Mark Moseley, JetBrains RubyMine Team"
34
- spec.email = "rubymine-feedback@jetbrains.com"
33
+ spec.author = "Markus Barchfeld, Martin Krauskopf, Mark Moseley, Alexandr Evstigneev"
34
+ spec.email = "hurricup@gmail.com"
35
35
  spec.license = "MIT"
36
36
  spec.platform = Gem::Platform::RUBY
37
37
  spec.require_path = "lib"
@@ -44,5 +44,4 @@ EOF
44
44
 
45
45
  spec.required_ruby_version = '>= 1.8.2'
46
46
  spec.date = DateTime.now
47
- spec.rubyforge_project = 'debug-commons'
48
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-debug-ide
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1.beta1
4
+ version: 0.7.3
5
5
  platform: ruby
6
6
  authors:
7
- - Markus Barchfeld, Martin Krauskopf, Mark Moseley, JetBrains RubyMine Team
7
+ - Markus Barchfeld, Martin Krauskopf, Mark Moseley, Alexandr Evstigneev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-26 00:00:00.000000000 Z
11
+ date: 2021-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -27,8 +27,8 @@ dependencies:
27
27
  description: 'An interface which glues ruby-debug to IDEs like Eclipse (RDT), NetBeans
28
28
  and RubyMine.
29
29
 
30
- '
31
- email: rubymine-feedback@jetbrains.com
30
+ '
31
+ email: hurricup@gmail.com
32
32
  executables:
33
33
  - rdebug-ide
34
34
  - gdb_wrapper
@@ -99,12 +99,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
99
99
  version: 1.8.2
100
100
  required_rubygems_version: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - ">"
102
+ - - ">="
103
103
  - !ruby/object:Gem::Version
104
- version: 1.3.1
104
+ version: '0'
105
105
  requirements: []
106
- rubyforge_project: debug-commons
107
- rubygems_version: 2.7.7
106
+ rubygems_version: 3.2.22
108
107
  signing_key:
109
108
  specification_version: 4
110
109
  summary: IDE interface for ruby-debug.