rubinius-debugger 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rubinius/debugger.rb +18 -6
- data/lib/rubinius/debugger/breakpoint.rb +22 -1
- data/lib/rubinius/debugger/commands.rb +13 -0
- data/lib/rubinius/debugger/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c435decbf9c2161060b0328b744f8430faa06df5
|
4
|
+
data.tar.gz: eb7acf5b8bf72ca9c0ff777ce3e26eab866f8b14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 109a0daaa86d91862ef75f502f4898af65008c69b6c3a7b694b9e4b7aa2ca979dd10e0abb0d9e6d2c68ba25630bea00f7b776b955a52689e28bfe1e6a0b6cded
|
7
|
+
data.tar.gz: 871d3f032600b57f8944a03003e04841ca0b1f1ae990d4a6bcd23ed65ed453ee3d85cbf974767a44a2f63a1df8d35a21dcbd390dc68bcf44bd092b364bcff6fa
|
data/lib/rubinius/debugger.rb
CHANGED
@@ -193,6 +193,7 @@ class Rubinius::Debugger
|
|
193
193
|
cmd = @last_command
|
194
194
|
else
|
195
195
|
@last_command = cmd
|
196
|
+
Readline::History << cmd
|
196
197
|
end
|
197
198
|
|
198
199
|
command, args = cmd.to_s.strip.split(/\s+/, 2)
|
@@ -238,7 +239,7 @@ class Rubinius::Debugger
|
|
238
239
|
end
|
239
240
|
end
|
240
241
|
|
241
|
-
def eval_code(args)
|
242
|
+
def eval_code(args, pretty = false)
|
242
243
|
obj = @current_frame.run(args)
|
243
244
|
|
244
245
|
idx = @user_variables
|
@@ -246,7 +247,13 @@ class Rubinius::Debugger
|
|
246
247
|
|
247
248
|
str = "$d#{idx}"
|
248
249
|
Rubinius::Globals[str.to_sym] = obj
|
249
|
-
|
250
|
+
|
251
|
+
if pretty
|
252
|
+
require 'pp'
|
253
|
+
puts "#{str} = #{obj.pretty_inspect}\n"
|
254
|
+
else
|
255
|
+
puts "#{str} = #{obj.inspect}\n"
|
256
|
+
end
|
250
257
|
end
|
251
258
|
|
252
259
|
def frame(num)
|
@@ -265,7 +272,7 @@ class Rubinius::Debugger
|
|
265
272
|
end
|
266
273
|
end
|
267
274
|
|
268
|
-
def set_breakpoint_method(descriptor, method, line=nil, condition=nil)
|
275
|
+
def set_breakpoint_method(descriptor, method, line=nil, condition=nil, commands=nil, index=nil)
|
269
276
|
exec = method.executable
|
270
277
|
|
271
278
|
unless exec.kind_of?(Rubinius::CompiledCode)
|
@@ -288,9 +295,14 @@ class Rubinius::Debugger
|
|
288
295
|
bp = BreakPoint.new(descriptor, exec, ip, line, condition)
|
289
296
|
bp.activate
|
290
297
|
|
291
|
-
|
292
|
-
|
293
|
-
|
298
|
+
if index
|
299
|
+
bp.set_commands(commands)
|
300
|
+
@breakpoints[index] = bp
|
301
|
+
info "Set breakpoint #{index+1}: #{bp.location}"
|
302
|
+
else
|
303
|
+
@breakpoints << bp
|
304
|
+
info "Set breakpoint #{@breakpoints.size}: #{bp.location}"
|
305
|
+
end
|
294
306
|
|
295
307
|
return bp
|
296
308
|
end
|
@@ -104,8 +104,12 @@ class Rubinius::Debugger
|
|
104
104
|
@name = name
|
105
105
|
@line = line
|
106
106
|
@list = list
|
107
|
+
@commands = nil
|
108
|
+
@condition = nil
|
107
109
|
end
|
108
110
|
|
111
|
+
attr_reader :condition, :commands
|
112
|
+
|
109
113
|
def descriptor
|
110
114
|
"#{@klass_name}#{@which}#{@name}"
|
111
115
|
end
|
@@ -129,7 +133,8 @@ class Rubinius::Debugger
|
|
129
133
|
|
130
134
|
@debugger.info "Resolved breakpoint for #{@klass_name}#{@which}#{@name}"
|
131
135
|
|
132
|
-
@debugger.
|
136
|
+
index = @debugger.breakpoints.index(self)
|
137
|
+
@debugger.set_breakpoint_method descriptor, method, @line, @condition, @commands, index
|
133
138
|
|
134
139
|
return true
|
135
140
|
end
|
@@ -143,5 +148,21 @@ class Rubinius::Debugger
|
|
143
148
|
@list.delete self
|
144
149
|
end
|
145
150
|
end
|
151
|
+
|
152
|
+
def set_commands(commands)
|
153
|
+
@commands = commands
|
154
|
+
end
|
155
|
+
|
156
|
+
def has_commands?
|
157
|
+
!@commands.nil?
|
158
|
+
end
|
159
|
+
|
160
|
+
def set_condition(condition)
|
161
|
+
@condition = condition
|
162
|
+
end
|
163
|
+
|
164
|
+
def has_condition?
|
165
|
+
!@condition.nil?
|
166
|
+
end
|
146
167
|
end
|
147
168
|
end
|
@@ -505,6 +505,19 @@ next to the inspect output of the value.
|
|
505
505
|
end
|
506
506
|
end
|
507
507
|
|
508
|
+
class PrettyPrintEvalCode < Command
|
509
|
+
pattern "pp"
|
510
|
+
help "Run code in the current context"
|
511
|
+
ext_help <<-HELP
|
512
|
+
Run code in the context of the current frame. Like 'eval', but
|
513
|
+
pretty prints the result with 'pp'.
|
514
|
+
HELP
|
515
|
+
|
516
|
+
def run(args)
|
517
|
+
@debugger.eval_code(args, true)
|
518
|
+
end
|
519
|
+
end
|
520
|
+
|
508
521
|
class Disassemble < Command
|
509
522
|
pattern "dis", "disassemble"
|
510
523
|
help "Show the bytecode for the current line or method"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubinius-debugger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Shirai
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|