rhomobile-debug 1.0 → 1.0.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/CHANGELOG +5 -1
- data/lib/debugger.rb +57 -9
- metadata +4 -3
data/CHANGELOG
CHANGED
data/lib/debugger.rb
CHANGED
|
@@ -13,6 +13,8 @@ def debug_read_cmd(io,wait)
|
|
|
13
13
|
cmd = io.read_nonblock(4096)
|
|
14
14
|
$_cmd << cmd if cmd !~ /^\s*$/
|
|
15
15
|
end
|
|
16
|
+
|
|
17
|
+
#$_s.write("get data from front end" + $_cmd.to_s + "\n")
|
|
16
18
|
rescue
|
|
17
19
|
# puts $!.inspect
|
|
18
20
|
end
|
|
@@ -35,6 +37,8 @@ def execute_cmd(cmd, advanced)
|
|
|
35
37
|
end
|
|
36
38
|
|
|
37
39
|
def get_variables(scope)
|
|
40
|
+
#$_s.write("get_variables start\n")
|
|
41
|
+
|
|
38
42
|
if (scope =~ /^GVARS/)
|
|
39
43
|
cmd = "global_variables"
|
|
40
44
|
prefix = ""
|
|
@@ -66,6 +70,7 @@ def get_variables(scope)
|
|
|
66
70
|
begin
|
|
67
71
|
result = eval(v,$_binding).inspect
|
|
68
72
|
rescue Exception => exc
|
|
73
|
+
$_s.write("get var exception\n")
|
|
69
74
|
result = "#{$!}".inspect
|
|
70
75
|
end
|
|
71
76
|
$_s.write("V:#{vartype}:#{v}:#{result}\n")
|
|
@@ -81,9 +86,12 @@ def log_command(cmd)
|
|
|
81
86
|
end
|
|
82
87
|
|
|
83
88
|
def debug_handle_cmd(inline)
|
|
89
|
+
#$_s.write("start of debug_handle_cmd wait=" + inline.to_s + "\n")
|
|
90
|
+
|
|
84
91
|
cmd = $_cmd.match(/^([^\n\r]*)([\n\r]+|$)/)[0]
|
|
85
92
|
processed = false
|
|
86
93
|
wait = inline
|
|
94
|
+
|
|
87
95
|
if cmd != ""
|
|
88
96
|
if cmd =~/^CONNECTED/
|
|
89
97
|
log_command(cmd)
|
|
@@ -117,6 +125,7 @@ def debug_handle_cmd(inline)
|
|
|
117
125
|
puts "[Debugger] Breakpoints disabled"
|
|
118
126
|
processed = true
|
|
119
127
|
elsif inline and (cmd =~ /^STEPOVER/)
|
|
128
|
+
$_s.write("STEPOVER start\n")
|
|
120
129
|
log_command(cmd)
|
|
121
130
|
$_step = 2
|
|
122
131
|
$_step_level = $_call_stack
|
|
@@ -168,9 +177,11 @@ def debug_handle_cmd(inline)
|
|
|
168
177
|
elsif inline and (cmd =~ /^EVL?:/)
|
|
169
178
|
log_command(cmd)
|
|
170
179
|
processed = true
|
|
180
|
+
puts "[Debugger] Calc evaluation..."
|
|
171
181
|
execute_cmd cmd.sub(/^EVL?:/,""), (cmd =~ /^EVL:/ ? true : false)
|
|
172
|
-
elsif
|
|
182
|
+
elsif inline and (cmd =~ /^[GLCI]VARS/)
|
|
173
183
|
log_command(cmd)
|
|
184
|
+
puts "[Debugger] Get variables..."
|
|
174
185
|
get_variables cmd
|
|
175
186
|
processed = true
|
|
176
187
|
elsif inline
|
|
@@ -179,10 +190,14 @@ def debug_handle_cmd(inline)
|
|
|
179
190
|
processed = true
|
|
180
191
|
end
|
|
181
192
|
end
|
|
193
|
+
|
|
182
194
|
if processed
|
|
183
195
|
$_cmd = $_cmd.sub(/^([^\n\r]*)([\n\r]+(.*)|)$/, "\\3")
|
|
184
196
|
$_wait = wait if inline
|
|
185
197
|
end
|
|
198
|
+
|
|
199
|
+
#$_s.write("end of debug_handle_cmd wait=" + $_wait.to_s + "cmd=" + cmd + "\n")
|
|
200
|
+
|
|
186
201
|
processed
|
|
187
202
|
end
|
|
188
203
|
|
|
@@ -192,15 +207,24 @@ $_tracefunc = lambda{|event, file, line, id, bind, classname|
|
|
|
192
207
|
$_classname = classname;
|
|
193
208
|
$_methodname = id;
|
|
194
209
|
file = file.to_s.gsub('\\', '/')
|
|
210
|
+
|
|
195
211
|
if file[0, $_app_path.length] == $_app_path
|
|
212
|
+
|
|
196
213
|
if event =~ /^line/
|
|
197
214
|
|
|
198
215
|
unhandled = true
|
|
199
216
|
step_stop = ($_step > 0) and (($_step_level < 0) or ($_call_stack <= $_step_level))
|
|
217
|
+
|
|
218
|
+
a = step_stop.to_s
|
|
219
|
+
#$_s.write('[Debugger][2] file = ' + file.to_s + ' step = ' + a.to_s + "\n")
|
|
220
|
+
|
|
200
221
|
if (step_stop or ($_breakpoints_enabled and (not $_breakpoint.empty?)))
|
|
201
222
|
filename = file[$_app_path.length, file.length-$_app_path.length]
|
|
223
|
+
|
|
202
224
|
ln = line.to_i.to_s
|
|
203
225
|
if (step_stop or ($_breakpoints_enabled and ($_breakpoint.has_key?(filename + ':' + ln))))
|
|
226
|
+
#$_s.write('[Debugger][3] step = ' + file.to_s + ' line = ' + line.to_s + "\n")
|
|
227
|
+
|
|
204
228
|
fn = filename.gsub(/:/, '|')
|
|
205
229
|
cl = classname.to_s.gsub(/:/,'#')
|
|
206
230
|
$_s.write((step_stop ? DEBUGGER_STEP_TYPE[$_step-1] : "BP") + ":#{fn}:#{ln}:#{cl}:#{id}\n")
|
|
@@ -208,14 +232,25 @@ $_tracefunc = lambda{|event, file, line, id, bind, classname|
|
|
|
208
232
|
$_step = 0
|
|
209
233
|
$_step_level = -1
|
|
210
234
|
|
|
235
|
+
#$_s.write("start waiting\n")
|
|
236
|
+
|
|
237
|
+
puts ">> " + ENV["APP_TYPE"].to_s
|
|
238
|
+
|
|
211
239
|
$_wait = true
|
|
212
240
|
while $_wait
|
|
213
241
|
while debug_handle_cmd(true) do end
|
|
214
|
-
|
|
215
|
-
|
|
242
|
+
|
|
243
|
+
if ENV["APP_TYPE"] == "rhodes"
|
|
244
|
+
if System::get_property('main_window_closed')
|
|
245
|
+
$_wait = false
|
|
246
|
+
end
|
|
216
247
|
end
|
|
217
|
-
|
|
248
|
+
|
|
249
|
+
sleep(0.1) if $_wait
|
|
218
250
|
end
|
|
251
|
+
|
|
252
|
+
#$_s.write("end waiting\n")
|
|
253
|
+
|
|
219
254
|
unhandled = false
|
|
220
255
|
end
|
|
221
256
|
end
|
|
@@ -242,13 +277,22 @@ $_s = nil
|
|
|
242
277
|
|
|
243
278
|
begin
|
|
244
279
|
puts "[Debugger] Opening connection"
|
|
245
|
-
|
|
246
|
-
|
|
280
|
+
debug_host_env = ENV['RHOHOST']
|
|
281
|
+
debug_port_env = ENV['RHOPORT']
|
|
282
|
+
debug_path_env = ENV['ROOT_PATH']
|
|
283
|
+
|
|
284
|
+
debug_host = (debug_host_env.nil? or debug_host_env == "") ? '127.0.0.1' : debug_host_env
|
|
285
|
+
debug_port = (debug_port_env.nil? or debug_port_env == "") ? 9000 : debug_port_env
|
|
286
|
+
|
|
287
|
+
puts "host=" + debug_host_env.to_s
|
|
288
|
+
puts "port=" + debug_port_env.to_s
|
|
289
|
+
puts "path=" + debug_path_env.to_s
|
|
290
|
+
|
|
247
291
|
$_s = timeout(30) { TCPSocket.open(debug_host, debug_port) }
|
|
248
292
|
|
|
249
293
|
puts "[Debugger] Connected: " + $_s.to_s
|
|
250
|
-
$_s.write("CONNECT\n")
|
|
251
|
-
|
|
294
|
+
$_s.write("CONNECT\nHOST=" + debug_host.to_s + "\nPORT=" + debug_port.to_s + "\n")
|
|
295
|
+
|
|
252
296
|
$_breakpoint = Hash.new
|
|
253
297
|
$_breakpoints_enabled = true
|
|
254
298
|
$_step = 0
|
|
@@ -256,7 +300,10 @@ begin
|
|
|
256
300
|
$_call_stack = 0
|
|
257
301
|
$_resumed = false
|
|
258
302
|
$_cmd = ""
|
|
259
|
-
$_app_path =
|
|
303
|
+
$_app_path = ""
|
|
304
|
+
|
|
305
|
+
$_app_path = (debug_path_env.nil? or debug_path_env == "") ? "" : debug_path_env
|
|
306
|
+
$_s.write("DEBUG PATH=" + $_app_path.to_s + "\n")
|
|
260
307
|
|
|
261
308
|
at_exit {
|
|
262
309
|
$_s.write("QUIT\n") if (not $_s.nil?)
|
|
@@ -269,6 +316,7 @@ begin
|
|
|
269
316
|
debug_read_cmd($_s,true)
|
|
270
317
|
while debug_handle_cmd(false) do end
|
|
271
318
|
if ($_cmd !~ /^\s*$/) and (Thread.main.stop?)
|
|
319
|
+
$_s.write("[manage thread] set wait = true\n")
|
|
272
320
|
$_wait = true
|
|
273
321
|
Thread.main.wakeup
|
|
274
322
|
end
|
metadata
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rhomobile-debug
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
hash:
|
|
4
|
+
hash: 21
|
|
5
5
|
prerelease: false
|
|
6
6
|
segments:
|
|
7
7
|
- 1
|
|
8
8
|
- 0
|
|
9
|
-
|
|
9
|
+
- 1
|
|
10
|
+
version: 1.0.1
|
|
10
11
|
platform: ruby
|
|
11
12
|
authors:
|
|
12
13
|
- Rhomobile
|
|
@@ -14,7 +15,7 @@ autorequire:
|
|
|
14
15
|
bindir: bin
|
|
15
16
|
cert_chain: []
|
|
16
17
|
|
|
17
|
-
date: 2011-
|
|
18
|
+
date: 2011-07-04 00:00:00 -07:00
|
|
18
19
|
default_executable:
|
|
19
20
|
dependencies: []
|
|
20
21
|
|