ruby-debug-ide 0.4.0 → 0.4.1
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/bin/rdebug-ide +7 -4
- data/lib/ruby-debug.rb +9 -5
- data/lib/ruby-debug/commands/eval.rb +1 -1
- data/lib/ruby-debug/commands/frame.rb +3 -1
- data/lib/ruby-debug/xml_printer.rb +15 -12
- metadata +3 -3
data/bin/rdebug-ide
CHANGED
@@ -8,11 +8,12 @@ require 'ruby-debug'
|
|
8
8
|
$stdout.sync=true
|
9
9
|
|
10
10
|
options = OpenStruct.new(
|
11
|
+
'frame_bind' => false,
|
11
12
|
'host' => nil,
|
13
|
+
'load_mode' => false,
|
12
14
|
'port' => 1234,
|
13
|
-
'
|
14
|
-
'
|
15
|
-
'load_mode' => false
|
15
|
+
'stop' => false,
|
16
|
+
'tracing' => false
|
16
17
|
)
|
17
18
|
|
18
19
|
opts = OptionParser.new do |opts|
|
@@ -24,6 +25,7 @@ EOB
|
|
24
25
|
opts.separator "Options:"
|
25
26
|
opts.on("-h", "--host HOST", "Host name used for remote debugging") {|options.host|}
|
26
27
|
opts.on("-p", "--port PORT", Integer, "Port used for remote debugging") {|options.port|}
|
28
|
+
opts.on('--stop', 'stop when the script is loaded') {options.stop = true}
|
27
29
|
opts.on("-x", "--trace", "turn on line tracing") {options.tracing = true}
|
28
30
|
opts.on("-l", "--load-mode", "load mode (experimental)") {options.load_mode = true}
|
29
31
|
opts.on("-d", "--debug", "Debug self - prints information for debugging ruby-debug itself") do
|
@@ -75,6 +77,7 @@ trap('INT') { Debugger.interrupt_last }
|
|
75
77
|
|
76
78
|
# set options
|
77
79
|
Debugger.keep_frame_binding = options.frame_bind
|
80
|
+
Debugger.tracing = options.tracing
|
78
81
|
|
79
|
-
Debugger.
|
82
|
+
Debugger.debug_program(options)
|
80
83
|
|
data/lib/ruby-debug.rb
CHANGED
@@ -40,7 +40,11 @@ module Debugger
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def at_tracing(file, line)
|
43
|
-
event_processor
|
43
|
+
if event_processor
|
44
|
+
event_processor.at_tracing(self, file, line)
|
45
|
+
else
|
46
|
+
Debugger::print_debug "trace: location=\"%s:%s\", threadId=%d", file, line, self.thnum
|
47
|
+
end
|
44
48
|
end
|
45
49
|
|
46
50
|
def at_line(file, line)
|
@@ -77,12 +81,12 @@ module Debugger
|
|
77
81
|
end
|
78
82
|
end
|
79
83
|
|
80
|
-
def
|
84
|
+
def debug_program(options)
|
81
85
|
return if started?
|
82
86
|
|
83
87
|
start
|
84
88
|
|
85
|
-
start_control(host, port)
|
89
|
+
start_control(options.host, options.port)
|
86
90
|
|
87
91
|
raise "Control thread did not start (#{@control_thread}}" unless @control_thread && @control_thread.alive?
|
88
92
|
|
@@ -94,7 +98,7 @@ module Debugger
|
|
94
98
|
@proceed.wait(@mutex)
|
95
99
|
end
|
96
100
|
|
97
|
-
debug_load(Debugger::PROG_SCRIPT,
|
101
|
+
debug_load(Debugger::PROG_SCRIPT, options.stop, options.load_mode)
|
98
102
|
end
|
99
103
|
|
100
104
|
def run_prog_script
|
@@ -111,7 +115,7 @@ module Debugger
|
|
111
115
|
unless RUBY_PLATFORM =~ /darwin/i # Mac OS X seems to have problem with 'localhost'
|
112
116
|
host ||= 'localhost' # nil does not seem to work for IPv6, localhost does
|
113
117
|
end
|
114
|
-
$stderr.printf "Fast Debugger (ruby-debug-ide 0.4.
|
118
|
+
$stderr.printf "Fast Debugger (ruby-debug-ide 0.4.1) listens on #{host}:#{port}\n"
|
115
119
|
server = TCPServer.new(host, port)
|
116
120
|
while (session = server.accept)
|
117
121
|
begin
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module Debugger
|
2
|
+
|
2
3
|
module FrameFunctions # :nodoc:
|
4
|
+
|
3
5
|
def adjust_frame(frame_pos, absolute)
|
4
6
|
if absolute
|
5
7
|
if frame_pos < 0
|
@@ -25,7 +27,7 @@ module Debugger
|
|
25
27
|
@state.file = @state.context.frame_file(@state.frame_pos)
|
26
28
|
@state.line = @state.context.frame_line(@state.frame_pos)
|
27
29
|
|
28
|
-
print_current_frame(@state.
|
30
|
+
print_current_frame(@state.frame_pos)
|
29
31
|
end
|
30
32
|
|
31
33
|
end
|
@@ -18,6 +18,7 @@ module Debugger
|
|
18
18
|
|
19
19
|
# Sends debug message to the frontend if XML debug logging flag (--xml-debug) is on.
|
20
20
|
def print_debug(*args)
|
21
|
+
Debugger.print_debug(*args)
|
21
22
|
if Debugger.xml_debug
|
22
23
|
msg, *args = args
|
23
24
|
xml_message = CGI.escapeHTML(msg % args)
|
@@ -32,22 +33,23 @@ module Debugger
|
|
32
33
|
end
|
33
34
|
end
|
34
35
|
|
35
|
-
def print_frames(context,
|
36
|
+
def print_frames(context, current_frame_id)
|
36
37
|
print_element("frames") do
|
37
|
-
(0...context.stack_size).each do |
|
38
|
-
print_frame(context,
|
38
|
+
(0...context.stack_size).each do |id|
|
39
|
+
print_frame(context, id, current_frame_id)
|
39
40
|
end
|
40
41
|
end
|
41
42
|
end
|
42
43
|
|
43
|
-
def print_current_frame(
|
44
|
+
def print_current_frame(frame_pos)
|
44
45
|
print_debug "Selected frame no #{frame_pos}"
|
45
46
|
end
|
46
47
|
|
47
|
-
def print_frame(context,
|
48
|
+
def print_frame(context, frame_id, current_frame_id)
|
48
49
|
# idx + 1: one-based numbering as classic-debugger
|
49
|
-
|
50
|
-
|
50
|
+
file = context.frame_file(frame_id)
|
51
|
+
print "<frame no=\'%s\' file=\'%s\' line=\'%s\' #{"current='true' " if frame_id == current_frame_id}/>",
|
52
|
+
frame_id + 1, File.expand_path(file), context.frame_line(frame_id)
|
51
53
|
end
|
52
54
|
|
53
55
|
def print_contexts(contexts)
|
@@ -172,14 +174,13 @@ module Debugger
|
|
172
174
|
print "<eval expression=\"%s\" value=\"%s\" />", CGI.escapeHTML(exp), value
|
173
175
|
end
|
174
176
|
|
175
|
-
def print_pp(
|
177
|
+
def print_pp(value)
|
176
178
|
print value
|
177
179
|
end
|
178
180
|
|
179
181
|
def print_list(b, e, file, line)
|
180
182
|
print "[%d, %d] in %s\n", b, e, file
|
181
183
|
if lines = Debugger.source_for(file)
|
182
|
-
n = 0
|
183
184
|
b.upto(e) do |n|
|
184
185
|
if n > 0 && lines[n-1]
|
185
186
|
if n == line
|
@@ -216,12 +217,14 @@ module Debugger
|
|
216
217
|
end
|
217
218
|
|
218
219
|
def print_trace(context, file, line)
|
219
|
-
|
220
|
+
Debugger::print_debug "trace: location=\"%s:%s\", threadId=%d", file, line, context.thnum
|
221
|
+
# TBD: do we want to clog fronend with the <trace> elements? There are tons of them.
|
222
|
+
# print "<trace file=\"%s\" line=\"%s\" threadId=\"%d\" />", file, line, context.thnum
|
220
223
|
end
|
221
224
|
|
222
225
|
def print_at_line(file, line)
|
223
|
-
print "<suspended file=\
|
224
|
-
|
226
|
+
print "<suspended file=\'%s\' line=\'%s\' threadId=\'%d\' frames=\'%d\'/>",
|
227
|
+
File.expand_path(file), line, Debugger.current_context.thnum, Debugger.current_context.stack_size
|
225
228
|
end
|
226
229
|
|
227
230
|
def print_exception(exception, binding)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-debug-ide
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Markus Barchfeld, Martin Krauskopf
|
@@ -9,7 +9,7 @@ autorequire: ruby-debug-base
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-10
|
12
|
+
date: 2008-11-10 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -76,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
76
76
|
requirements: []
|
77
77
|
|
78
78
|
rubyforge_project: debug-commons
|
79
|
-
rubygems_version: 1.3.
|
79
|
+
rubygems_version: 1.3.1.1918
|
80
80
|
signing_key:
|
81
81
|
specification_version: 2
|
82
82
|
summary: IDE interface for ruby-debug.
|