ruby-debug-ide 0.4.11 → 0.4.16
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.
- 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
|
-
|