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 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
- 'tracing' => false,
14
- 'frame_bind' => false,
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.main(options.host, options.port, options.load_mode)
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.at_tracing(self, file, line)
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 main(host, port, load_mode)
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, false, load_mode)
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.0) listens on #{host}:#{port}\n"
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
@@ -46,7 +46,7 @@ module Debugger
46
46
  exp = @match.post_match
47
47
  out = StringIO.new
48
48
  PP.pp(debug_eval(exp), out) rescue out.puts $!.message
49
- print_pp exp, out.string
49
+ print_pp out.string
50
50
  end
51
51
 
52
52
  class << self
@@ -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.context, @state.frame_pos)
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, cur_idx)
36
+ def print_frames(context, current_frame_id)
36
37
  print_element("frames") do
37
- (0...context.stack_size).each do |idx|
38
- print_frame(context, idx, cur_idx)
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(context, frame_pos)
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, idx, cur_idx)
48
+ def print_frame(context, frame_id, current_frame_id)
48
49
  # idx + 1: one-based numbering as classic-debugger
49
- print "<frame no=\"%s\" file=\"%s\" line=\"%s\" #{'current="true" ' if idx == cur_idx}/>",
50
- idx + 1, context.frame_file(idx), context.frame_line(idx)
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(exp, value)
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
- print "<trace file=\"%s\" line=\"%s\" threadId=\"%d\" />", file, line, context.thnum
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=\"%s\" line=\"%s\" threadId=\"%d\" frames=\"%d\"/>",
224
- file, line, Debugger.current_context.thnum, Debugger.current_context.stack_size
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.0
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-31 00:00:00 +01:00
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.0.1904
79
+ rubygems_version: 1.3.1.1918
80
80
  signing_key:
81
81
  specification_version: 2
82
82
  summary: IDE interface for ruby-debug.