ruby-debug-ide 0.4.11 → 0.4.16
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +10 -8
- data/ext/mkrf_conf.rb +2 -2
- data/lib/ruby-debug-ide.rb +9 -4
- data/lib/ruby-debug/command.rb +3 -3
- data/lib/ruby-debug/commands/inspect.rb +2 -1
- data/lib/ruby-debug/commands/jump.rb +73 -0
- data/lib/ruby-debug/commands/pause.rb +32 -0
- data/lib/ruby-debug/commands/set_type.rb +47 -0
- data/lib/ruby-debug/commands/variables.rb +7 -3
- data/lib/ruby-debug/event_processor.rb +2 -2
- data/lib/ruby-debug/version.rb +3 -0
- data/lib/ruby-debug/xml_printer.rb +3 -3
- metadata +11 -20
- data/CHANGES +0 -75
- data/ChangeLog +0 -481
- data/ChangeLog.archive +0 -1073
- data/test/rd_basic_test.rb +0 -10
- data/test/rd_catchpoint_test.rb +0 -20
- data/test/rd_condition_test.rb +0 -11
- data/test/rd_enable_disable_test.rb +0 -43
- data/test/rd_inspect_test.rb +0 -11
- data/test/rd_stepping_breakpoints_test.rb +0 -36
- data/test/rd_test_base.rb +0 -44
- data/test/rd_threads_and_frames_test.rb +0 -11
- data/test/rd_variables_test.rb +0 -11
- data/test/ruby-debug/xml_printer_test.rb +0 -105
data/Rakefile
CHANGED
@@ -3,23 +3,24 @@ require 'rubygems'
|
|
3
3
|
require 'rake/gempackagetask'
|
4
4
|
require 'rake/rdoctask'
|
5
5
|
require 'rake/testtask'
|
6
|
+
require 'lib/ruby-debug/version'
|
6
7
|
require 'date'
|
7
8
|
|
8
9
|
desc 'Default: run unit tests.'
|
9
10
|
task :default => [:test]
|
10
11
|
|
11
12
|
# ------- Default Package ----------
|
12
|
-
RUBY_DEBUG_IDE_VERSION =
|
13
|
+
RUBY_DEBUG_IDE_VERSION = Debugger::IDE_VERSION
|
13
14
|
|
14
15
|
FILES = FileList[
|
15
|
-
'CHANGES',
|
16
|
-
'ChangeLog',
|
17
|
-
'ChangeLog.archive',
|
16
|
+
# 'CHANGES',
|
17
|
+
# 'ChangeLog',
|
18
|
+
# 'ChangeLog.archive',
|
18
19
|
'MIT-LICENSE',
|
19
20
|
'Rakefile',
|
20
21
|
'bin/*',
|
21
22
|
'lib/**/*',
|
22
|
-
'test/**/*',
|
23
|
+
# 'test/**/*',
|
23
24
|
'ext/mkrf_conf.rb'
|
24
25
|
]
|
25
26
|
|
@@ -29,18 +30,19 @@ ide_spec = Gem::Specification.new do |spec|
|
|
29
30
|
spec.homepage = "http://rubyforge.org/projects/debug-commons/"
|
30
31
|
spec.summary = "IDE interface for ruby-debug."
|
31
32
|
spec.description = <<-EOF
|
32
|
-
An interface which glues ruby-debug to IDEs like Eclipse (RDT) and
|
33
|
+
An interface which glues ruby-debug to IDEs like Eclipse (RDT), NetBeans and RubyMine.
|
33
34
|
EOF
|
34
35
|
|
35
36
|
spec.version = RUBY_DEBUG_IDE_VERSION
|
36
37
|
|
37
|
-
spec.author = "Markus Barchfeld, Martin Krauskopf"
|
38
|
-
spec.email = "
|
38
|
+
spec.author = "Markus Barchfeld, Martin Krauskopf, Mark Moseley, JetBrains RubyMine Team"
|
39
|
+
spec.email = "rubymine-feedback@jetbrains.com"
|
39
40
|
spec.platform = Gem::Platform::RUBY
|
40
41
|
spec.require_path = "lib"
|
41
42
|
spec.bindir = "bin"
|
42
43
|
spec.executables = ["rdebug-ide"]
|
43
44
|
spec.files = FILES.to_a
|
45
|
+
|
44
46
|
spec.extensions << "ext/mkrf_conf.rb"
|
45
47
|
spec.add_dependency("rake", ">= 0.8.1")
|
46
48
|
|
data/ext/mkrf_conf.rb
CHANGED
@@ -12,9 +12,9 @@ unless jruby
|
|
12
12
|
inst = Gem::DependencyInstaller.new
|
13
13
|
begin
|
14
14
|
if RUBY_VERSION < "1.9"
|
15
|
-
inst.install "ruby-debug-base",
|
15
|
+
inst.install "ruby-debug-base", '>=0.10.4'
|
16
16
|
else
|
17
|
-
inst.install "ruby-debug-base19",
|
17
|
+
inst.install "ruby-debug-base19", '>=0.11.24'
|
18
18
|
end
|
19
19
|
rescue
|
20
20
|
exit(1)
|
data/lib/ruby-debug-ide.rb
CHANGED
@@ -4,10 +4,12 @@ require "socket"
|
|
4
4
|
require 'thread'
|
5
5
|
require 'ruby-debug-base'
|
6
6
|
if RUBY_VERSION < "1.9"
|
7
|
+
require 'ruby-debug/version'
|
7
8
|
require 'ruby-debug/xml_printer'
|
8
9
|
require 'ruby-debug/processor'
|
9
10
|
require 'ruby-debug/event_processor'
|
10
11
|
else
|
12
|
+
require_relative 'ruby-debug/version'
|
11
13
|
require_relative 'ruby-debug/xml_printer'
|
12
14
|
require_relative 'ruby-debug/processor'
|
13
15
|
require_relative 'ruby-debug/event_processor'
|
@@ -24,6 +26,7 @@ module Debugger
|
|
24
26
|
$stderr.flush
|
25
27
|
end
|
26
28
|
end
|
29
|
+
|
27
30
|
end
|
28
31
|
|
29
32
|
class Context
|
@@ -125,10 +128,10 @@ module Debugger
|
|
125
128
|
return if @control_thread
|
126
129
|
@control_thread = DebugThread.new do
|
127
130
|
begin
|
128
|
-
$stderr.printf "Fast Debugger (ruby-debug-ide 0.4.10) listens on #{host}:#{port}\n"
|
129
131
|
# 127.0.0.1 seemingly works with all systems and with IPv6 as well.
|
130
|
-
# "localhost" and nil
|
132
|
+
# "localhost" and nil have problems on some systems.
|
131
133
|
host ||= '127.0.0.1'
|
134
|
+
$stderr.printf "Fast Debugger (ruby-debug-ide #{IDE_VERSION}, ruby-debug-base #{VERSION}) listens on #{host}:#{port}\n"
|
132
135
|
server = TCPServer.new(host, port)
|
133
136
|
while (session = server.accept)
|
134
137
|
begin
|
@@ -136,12 +139,14 @@ module Debugger
|
|
136
139
|
@event_processor = EventProcessor.new(interface)
|
137
140
|
ControlCommandProcessor.new(interface).process_commands
|
138
141
|
rescue StandardError, ScriptError => ex
|
139
|
-
|
142
|
+
bt = ex.backtrace
|
143
|
+
$stderr.printf "Exception in DebugThread loop: #{ex.message}\nBacktrace:\n#{bt ? bt.join("\n from: ") : "<none>"}\n"
|
140
144
|
exit 1
|
141
145
|
end
|
142
146
|
end
|
143
147
|
rescue
|
144
|
-
|
148
|
+
bt = $!.backtrace
|
149
|
+
$stderr.printf "Fatal exception in DebugThread loop: #{$!.message}\nBacktrace:\n#{bt ? bt.join("\n from: ") : "<none>"}\n"
|
145
150
|
exit 2
|
146
151
|
end
|
147
152
|
end
|
data/lib/ruby-debug/command.rb
CHANGED
@@ -102,8 +102,8 @@ module Debugger
|
|
102
102
|
# in ruby-debug.c
|
103
103
|
def timeout(sec)
|
104
104
|
return yield if sec == nil or sec.zero?
|
105
|
-
if
|
106
|
-
raise ThreadError, "timeout within critical session"
|
105
|
+
if Thread.respond_to?(:critical) and Thread.critical
|
106
|
+
raise ThreadError, "timeout within critical session"
|
107
107
|
end
|
108
108
|
begin
|
109
109
|
x = Thread.current
|
@@ -122,7 +122,7 @@ module Debugger
|
|
122
122
|
str = str.to_s
|
123
123
|
max_time = 10
|
124
124
|
to_inspect = str.gsub(/\\n/, "\n")
|
125
|
-
@printer.print_debug("Evaluating with timeout after %i sec", max_time)
|
125
|
+
@printer.print_debug("Evaluating #{str} with timeout after %i sec", max_time)
|
126
126
|
timeout(max_time) do
|
127
127
|
eval(to_inspect, b)
|
128
128
|
end
|
@@ -15,7 +15,8 @@ module Debugger
|
|
15
15
|
end
|
16
16
|
#
|
17
17
|
def execute
|
18
|
-
|
18
|
+
binding = @state.context ? get_binding : TOPLEVEL_BINDING
|
19
|
+
obj = debug_eval(@match.post_match, binding)
|
19
20
|
InspectCommand.reference_result(obj)
|
20
21
|
@printer.print_inspect(obj)
|
21
22
|
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
module Debugger
|
2
|
+
|
3
|
+
# Implements debugger "jump" command
|
4
|
+
class JumpCommand < Command
|
5
|
+
self.need_context = true
|
6
|
+
|
7
|
+
def numeric?(object)
|
8
|
+
true if Float(object) rescue false
|
9
|
+
end
|
10
|
+
|
11
|
+
def regexp
|
12
|
+
/ ^\s*
|
13
|
+
j(?:ump)? \s*
|
14
|
+
(?:\s+(\S+))?\s*
|
15
|
+
(?:\s+(\S+))?\s*
|
16
|
+
$
|
17
|
+
/ix
|
18
|
+
end
|
19
|
+
|
20
|
+
def execute
|
21
|
+
unless @state.context.respond_to?(:jump)
|
22
|
+
print_msg "Not implemented"
|
23
|
+
return
|
24
|
+
end
|
25
|
+
if !@match[1]
|
26
|
+
print_msg "\"jump\" must be followed by a line number"
|
27
|
+
return
|
28
|
+
end
|
29
|
+
if !numeric?(@match[1])
|
30
|
+
print_msg "Bad line number: " + @match[1]
|
31
|
+
return
|
32
|
+
end
|
33
|
+
line = @match[1].to_i
|
34
|
+
line = @state.context.frame_line(0) + line if @match[1][0] == '+' or @match[1][0] == '-'
|
35
|
+
if line == @state.context.frame_line(0)
|
36
|
+
return
|
37
|
+
end
|
38
|
+
file = @match[2]
|
39
|
+
file = @state.context.frame_file(file.to_i) if numeric?(file)
|
40
|
+
file = @state.context.frame_file(0) if !file
|
41
|
+
case @state.context.jump(line, file)
|
42
|
+
when 0
|
43
|
+
@state.proceed
|
44
|
+
return
|
45
|
+
when 1
|
46
|
+
print_msg "Not possible to jump from here"
|
47
|
+
when 2
|
48
|
+
print_msg "Couldn't find debugged frame"
|
49
|
+
when 3
|
50
|
+
print_msg "Couldn't find active code at " + file + ":" + line.to_s
|
51
|
+
else
|
52
|
+
print_msg "Unknown error occurred"
|
53
|
+
end
|
54
|
+
@printer.print_at_line(@state.context, @state.context.frame_file, @state.context.frame_line)
|
55
|
+
end
|
56
|
+
|
57
|
+
class << self
|
58
|
+
def help_command
|
59
|
+
%w[jump]
|
60
|
+
end
|
61
|
+
|
62
|
+
def help(cmd)
|
63
|
+
%{
|
64
|
+
j[ump] line\tjump to line number (absolute)
|
65
|
+
j[ump] -line\tjump back to line (relative)
|
66
|
+
j[ump] +line\tjump ahead to line (relative)
|
67
|
+
|
68
|
+
Change the next line of code to be executed.
|
69
|
+
}
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Debugger
|
2
|
+
|
3
|
+
# Implements debugger "pause" command
|
4
|
+
class PauseCommand < Command
|
5
|
+
self.control = true
|
6
|
+
|
7
|
+
def regexp
|
8
|
+
/^\s*pause\s*(?:\s+(\S+))?\s*$/
|
9
|
+
end
|
10
|
+
|
11
|
+
def execute
|
12
|
+
c = get_context(@match[1].to_i)
|
13
|
+
unless c.respond_to?(:pause)
|
14
|
+
print_msg "Not implemented"
|
15
|
+
return
|
16
|
+
end
|
17
|
+
c.pause
|
18
|
+
end
|
19
|
+
|
20
|
+
class << self
|
21
|
+
def help_command
|
22
|
+
%w[pause]
|
23
|
+
end
|
24
|
+
|
25
|
+
def help(cmd)
|
26
|
+
%{
|
27
|
+
pause <nnn>\tpause a running thread
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Debugger
|
2
|
+
|
3
|
+
# Implements debugger "set_type" command
|
4
|
+
class SetTypeCommand < Command
|
5
|
+
self.need_context = true
|
6
|
+
|
7
|
+
def regexp
|
8
|
+
/ ^\s*
|
9
|
+
set_type? \s*
|
10
|
+
(?:\s+(\S+))?\s*
|
11
|
+
(?:\s+(\S+))?\s*
|
12
|
+
$
|
13
|
+
/ix
|
14
|
+
end
|
15
|
+
|
16
|
+
def execute
|
17
|
+
if RUBY_VERSION < "1.9"
|
18
|
+
print_msg "Not implemented"
|
19
|
+
return
|
20
|
+
end
|
21
|
+
begin
|
22
|
+
expr = @match[1] + " = " + @match[2] + "(" + @match[1] + ".inspect)"
|
23
|
+
eval(expr)
|
24
|
+
rescue
|
25
|
+
begin
|
26
|
+
expr = @match[1] + " = " + @match[2] + ".new(" + @match[1] + ".inspect)"
|
27
|
+
eval(expr)
|
28
|
+
rescue nil
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
class << self
|
34
|
+
def help_command
|
35
|
+
%w[set_type]
|
36
|
+
end
|
37
|
+
|
38
|
+
def help(cmd)
|
39
|
+
%{
|
40
|
+
set_type <var> <type>
|
41
|
+
|
42
|
+
Change the type of <var> to <type>
|
43
|
+
}
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -34,9 +34,13 @@ module Debugger
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def execute
|
37
|
-
|
38
|
-
|
39
|
-
|
37
|
+
globals = []
|
38
|
+
if RUBY_VERSION < "1.9"
|
39
|
+
globals = global_variables - ['$=', '$IGNORECASE']
|
40
|
+
else
|
41
|
+
globals = global_variables - [:$KCODE, :$-K, :$=, :$FILENAME]
|
42
|
+
end
|
43
|
+
print_variables(globals, 'global') do |var|
|
40
44
|
debug_eval(var)
|
41
45
|
end
|
42
46
|
end
|
@@ -32,12 +32,12 @@ end
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def at_line(context, file, line)
|
35
|
-
@printer.print_at_line(file, line) if context.nil? || context.stop_reason == :step
|
35
|
+
@printer.print_at_line(context, file, line) if context.nil? || context.stop_reason == :step
|
36
36
|
line_event(context, file, line)
|
37
37
|
end
|
38
38
|
|
39
39
|
def at_return(context, file, line)
|
40
|
-
@printer.print_at_line(file, line)
|
40
|
+
@printer.print_at_line(context, file, line)
|
41
41
|
context.stop_frame = -1
|
42
42
|
line_event(context, file, line)
|
43
43
|
end
|
@@ -100,7 +100,7 @@ module Debugger
|
|
100
100
|
|
101
101
|
def print_variable(name, value, kind)
|
102
102
|
name = name.to_s
|
103
|
-
|
103
|
+
if value.nil?
|
104
104
|
print("<variable name=\"%s\" kind=\"%s\"/>", CGI.escapeHTML(name), kind)
|
105
105
|
return
|
106
106
|
end
|
@@ -223,9 +223,9 @@ module Debugger
|
|
223
223
|
# print "<trace file=\"%s\" line=\"%s\" threadId=\"%d\" />", file, line, context.thnum
|
224
224
|
end
|
225
225
|
|
226
|
-
def print_at_line(file, line)
|
226
|
+
def print_at_line(context, file, line)
|
227
227
|
print "<suspended file=\'%s\' line=\'%s\' threadId=\'%d\' frames=\'%d\'/>",
|
228
|
-
File.expand_path(file), line,
|
228
|
+
File.expand_path(file), line, context.thnum, context.stack_size
|
229
229
|
end
|
230
230
|
|
231
231
|
def print_exception(exception, binding)
|
metadata
CHANGED
@@ -1,21 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-debug-ide
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 47
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 16
|
10
|
+
version: 0.4.16
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
|
-
- Markus Barchfeld, Martin Krauskopf
|
13
|
+
- Markus Barchfeld, Martin Krauskopf, Mark Moseley, JetBrains RubyMine Team
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-11-
|
18
|
+
date: 2010-11-29 00:00:00 +03:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -35,9 +35,9 @@ dependencies:
|
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: *id001
|
37
37
|
description: |
|
38
|
-
An interface which glues ruby-debug to IDEs like Eclipse (RDT) and
|
38
|
+
An interface which glues ruby-debug to IDEs like Eclipse (RDT), NetBeans and RubyMine.
|
39
39
|
|
40
|
-
email:
|
40
|
+
email: rubymine-feedback@jetbrains.com
|
41
41
|
executables:
|
42
42
|
- rdebug-ide
|
43
43
|
extensions:
|
@@ -45,9 +45,6 @@ extensions:
|
|
45
45
|
extra_rdoc_files: []
|
46
46
|
|
47
47
|
files:
|
48
|
-
- CHANGES
|
49
|
-
- ChangeLog
|
50
|
-
- ChangeLog.archive
|
51
48
|
- MIT-LICENSE
|
52
49
|
- Rakefile
|
53
50
|
- bin/rdebug-ide
|
@@ -60,7 +57,10 @@ files:
|
|
60
57
|
- lib/ruby-debug/commands/eval.rb
|
61
58
|
- lib/ruby-debug/commands/frame.rb
|
62
59
|
- lib/ruby-debug/commands/inspect.rb
|
60
|
+
- lib/ruby-debug/commands/jump.rb
|
63
61
|
- lib/ruby-debug/commands/load.rb
|
62
|
+
- lib/ruby-debug/commands/pause.rb
|
63
|
+
- lib/ruby-debug/commands/set_type.rb
|
64
64
|
- lib/ruby-debug/commands/stepping.rb
|
65
65
|
- lib/ruby-debug/commands/threads.rb
|
66
66
|
- lib/ruby-debug/commands/variables.rb
|
@@ -69,18 +69,9 @@ files:
|
|
69
69
|
- lib/ruby-debug/interface.rb
|
70
70
|
- lib/ruby-debug/printers.rb
|
71
71
|
- lib/ruby-debug/processor.rb
|
72
|
+
- lib/ruby-debug/version.rb
|
72
73
|
- lib/ruby-debug/xml_printer.rb
|
73
74
|
- lib/ruby-debug-ide.rb
|
74
|
-
- test/rd_basic_test.rb
|
75
|
-
- test/rd_catchpoint_test.rb
|
76
|
-
- test/rd_condition_test.rb
|
77
|
-
- test/rd_enable_disable_test.rb
|
78
|
-
- test/rd_inspect_test.rb
|
79
|
-
- test/rd_stepping_breakpoints_test.rb
|
80
|
-
- test/rd_test_base.rb
|
81
|
-
- test/rd_threads_and_frames_test.rb
|
82
|
-
- test/rd_variables_test.rb
|
83
|
-
- test/ruby-debug/xml_printer_test.rb
|
84
75
|
- ext/mkrf_conf.rb
|
85
76
|
has_rdoc: true
|
86
77
|
homepage: http://rubyforge.org/projects/debug-commons/
|
data/CHANGES
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
This document is not maintained since version 0.1.10. See ``Changes'' section
|
2
|
-
in the ``ruby-debug-ide protocol'' document:
|
3
|
-
|
4
|
-
http://debug-commons.rubyforge.org/protocol-spec.html
|
5
|
-
|
6
|
-
and ChangeLog for details. protocol-spec.html is generated from
|
7
|
-
doc/protocol-spec.texi file.
|
8
|
-
|
9
|
-
========================================================================
|
10
|
-
|
11
|
-
0.1.9 - 0.1.10
|
12
|
-
--------------
|
13
|
-
|
14
|
-
* fixed bug when inspected variable's to_s methods returns non-String.
|
15
|
-
Returns diagonstic message now.
|
16
|
-
* do not use '==' from within debugger to prevent runtime error
|
17
|
-
* Workarounding JRuby issue (http://jira.codehaus.org/browse/JRUBY-2063)
|
18
|
-
* switching to ruby-debug-base 0.1.10 (all tests pass)
|
19
|
-
|
20
|
-
0.1.8 - 0.1.9
|
21
|
-
-------------
|
22
|
-
|
23
|
-
* be sure 'exit' is always called.
|
24
|
-
* to_inspect = str.gsub(/\\n/, "\n") in debug_eval() to make possible to
|
25
|
-
evaluate multiline expressions. Frontend must escape new lines
|
26
|
-
accordingly.
|
27
|
-
* prevent exception when to_s returns nil on being evaluated value
|
28
|
-
|
29
|
-
0.1.7 - 0.1.8
|
30
|
-
-------------
|
31
|
-
|
32
|
-
* fixed error during breakpoint removing
|
33
|
-
* (protocols merge) print debug message on $stderr like classic debugger
|
34
|
-
|
35
|
-
0.1.6 - 0.1.7
|
36
|
-
-------------
|
37
|
-
|
38
|
-
* ensure 'yaml' (is_binary_data?) is always loaded in xml_printer.rb
|
39
|
-
* VarInstanceCommand enumerates also variables of an object's class, as it
|
40
|
-
is done in the classic-debugger
|
41
|
-
* do not send unneeded end-of-lines (fast and classic protocol merging)
|
42
|
-
* do not send non-xml PROMPT and CONFIRM + getting rid of 'confirm' methods
|
43
|
-
in the whole codebase (fast and classic protocol merging)
|
44
|
-
* send info <message> when 'delete' is used without given 'pos' (deleting of
|
45
|
-
all breakpoints is not supported)
|
46
|
-
* return <error> on 'delete <negative_int>' (protocol unification)
|
47
|
-
* always use one-based frame numbering (was not the case in <frame[s]>)
|
48
|
-
* send message 'finished' back when exiting
|
49
|
-
|
50
|
-
0.1.5 - 0.1.6
|
51
|
-
-------------
|
52
|
-
|
53
|
-
* do not send binary data within values of variables. See
|
54
|
-
http://www.netbeans.org/nonav/issues/show_bug.cgi?id=101748 for more
|
55
|
-
details
|
56
|
-
|
57
|
-
0.1.4 - 0.1.5
|
58
|
-
-------------
|
59
|
-
|
60
|
-
* fixed subtle bug in xml_printer.rb#print_variable which caused the
|
61
|
-
debugger to die when == method was overridden and did not count on nil
|
62
|
-
parameters
|
63
|
-
* Hash and Array subclasses did not have children thus cannot be expanded in
|
64
|
-
a GUI. E.g. @params in Rails controller (HashWithIndifferentAccess)
|
65
|
-
|
66
|
-
0.1.3 - 0.1.4
|
67
|
-
-------------
|
68
|
-
|
69
|
-
* migration to ruby-debug 0.1.4
|
70
|
-
|
71
|
-
0.1.2 - 0.1.3
|
72
|
-
-------------
|
73
|
-
|
74
|
-
* adding step+ and next+ commands (since ruby-debug 0.9.1)
|
75
|
-
|