rbx-trepanning 0.0.1-universal-rubinius
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 +376 -0
- data/LICENSE +25 -0
- data/NEWS +2 -0
- data/README.textile +28 -0
- data/Rakefile +165 -0
- data/THANKS +14 -0
- data/app/breakpoint.rb +218 -0
- data/app/breakpoint.rbc +3564 -0
- data/app/brkptmgr.rb +138 -0
- data/app/brkptmgr.rbc +2827 -0
- data/app/default.rb +61 -0
- data/app/default.rbc +1011 -0
- data/app/display.rb +35 -0
- data/app/display.rbc +968 -0
- data/app/frame.rb +98 -0
- data/app/frame.rbc +1808 -0
- data/app/irb.rb +112 -0
- data/app/irb.rbc +2111 -0
- data/app/iseq.rb +95 -0
- data/app/iseq.rbc +1801 -0
- data/app/method.rb +173 -0
- data/app/method.rbc +2492 -0
- data/app/mock.rb +13 -0
- data/app/mock.rbc +398 -0
- data/app/options.rb +123 -0
- data/app/options.rbc +2183 -0
- data/app/run.rb +86 -0
- data/app/run.rbc +1244 -0
- data/app/util.rb +49 -0
- data/app/util.rbc +1144 -0
- data/app/validate.rb +30 -0
- data/app/validate.rbc +676 -0
- data/bin/trepan.compiled.rbc +1043 -0
- data/bin/trepanx +63 -0
- data/bin/trepanx.compiled.rbc +985 -0
- data/interface/base_intf.rb +95 -0
- data/interface/base_intf.rbc +1742 -0
- data/interface/script.rb +104 -0
- data/interface/script.rbc +1642 -0
- data/interface/user.rb +91 -0
- data/interface/user.rbc +1418 -0
- data/io/base_io.rb +94 -0
- data/io/base_io.rbc +1404 -0
- data/io/input.rb +112 -0
- data/io/input.rbc +1979 -0
- data/io/null_output.rb +42 -0
- data/io/null_output.rbc +730 -0
- data/io/string_array.rb +156 -0
- data/io/string_array.rbc +2466 -0
- data/lib/trepanning.rb +398 -0
- data/lib/trepanning.rbc +6661 -0
- data/processor/breakpoint.rb +161 -0
- data/processor/command/alias.rb +55 -0
- data/processor/command/backtrace.rb +46 -0
- data/processor/command/base/cmd.rb +124 -0
- data/processor/command/base/subcmd.rb +213 -0
- data/processor/command/base/submgr.rb +179 -0
- data/processor/command/base/subsubcmd.rb +103 -0
- data/processor/command/base/subsubmgr.rb +184 -0
- data/processor/command/break.rb +100 -0
- data/processor/command/continue.rb +82 -0
- data/processor/command/delete.rb +30 -0
- data/processor/command/directory.rb +43 -0
- data/processor/command/disassemble.rb +103 -0
- data/processor/command/down.rb +54 -0
- data/processor/command/eval.rb +31 -0
- data/processor/command/exit.rb +58 -0
- data/processor/command/finish.rb +78 -0
- data/processor/command/frame.rb +89 -0
- data/processor/command/help.rb +146 -0
- data/processor/command/info.rb +28 -0
- data/processor/command/info_subcmd/breakpoints.rb +75 -0
- data/processor/command/info_subcmd/file.rb +153 -0
- data/processor/command/info_subcmd/method.rb +71 -0
- data/processor/command/info_subcmd/program.rb +59 -0
- data/processor/command/info_subcmd/variables.rb +40 -0
- data/processor/command/irb.rb +96 -0
- data/processor/command/kill.rb +70 -0
- data/processor/command/list.rb +296 -0
- data/processor/command/next.rb +66 -0
- data/processor/command/nexti.rb +59 -0
- data/processor/command/pr.rb +38 -0
- data/processor/command/ps.rb +40 -0
- data/processor/command/restart.rb +60 -0
- data/processor/command/set.rb +47 -0
- data/processor/command/set_subcmd/auto.rb +28 -0
- data/processor/command/set_subcmd/auto_subcmd/dis.rb +33 -0
- data/processor/command/set_subcmd/auto_subcmd/eval.rb +54 -0
- data/processor/command/set_subcmd/auto_subcmd/irb.rb +34 -0
- data/processor/command/set_subcmd/auto_subcmd/list.rb +34 -0
- data/processor/command/set_subcmd/basename.rb +26 -0
- data/processor/command/set_subcmd/debug.rb +27 -0
- data/processor/command/set_subcmd/debug_subcmd/dbgr.rb +36 -0
- data/processor/command/set_subcmd/debug_subcmd/skip.rb +23 -0
- data/processor/command/set_subcmd/debug_subcmd/step.rb +23 -0
- data/processor/command/set_subcmd/different.rb +60 -0
- data/processor/command/set_subcmd/hidelevel.rb +63 -0
- data/processor/command/set_subcmd/kernelstep.rb +61 -0
- data/processor/command/set_subcmd/max.rb +29 -0
- data/processor/command/set_subcmd/max_subcmd/list.rb +49 -0
- data/processor/command/set_subcmd/max_subcmd/stack.rb +50 -0
- data/processor/command/set_subcmd/max_subcmd/string.rb +54 -0
- data/processor/command/set_subcmd/max_subcmd/width.rb +49 -0
- data/processor/command/set_subcmd/substitute.rb +25 -0
- data/processor/command/set_subcmd/substitute_subcmd/path.rb +56 -0
- data/processor/command/set_subcmd/trace.rb +37 -0
- data/processor/command/set_subcmd/trace_subcmd/print.rb +57 -0
- data/processor/command/show.rb +27 -0
- data/processor/command/show_subcmd/alias.rb +43 -0
- data/processor/command/show_subcmd/args.rb +26 -0
- data/processor/command/show_subcmd/auto.rb +28 -0
- data/processor/command/show_subcmd/auto_subcmd/dis.rb +37 -0
- data/processor/command/show_subcmd/auto_subcmd/eval.rb +28 -0
- data/processor/command/show_subcmd/auto_subcmd/irb.rb +23 -0
- data/processor/command/show_subcmd/auto_subcmd/list.rb +22 -0
- data/processor/command/show_subcmd/basename.rb +22 -0
- data/processor/command/show_subcmd/debug.rb +27 -0
- data/processor/command/show_subcmd/debug_subcmd/dbgr.rb +21 -0
- data/processor/command/show_subcmd/debug_subcmd/skip.rb +22 -0
- data/processor/command/show_subcmd/debug_subcmd/step.rb +22 -0
- data/processor/command/show_subcmd/different.rb +27 -0
- data/processor/command/show_subcmd/hidelevel.rb +42 -0
- data/processor/command/show_subcmd/kernelstep.rb +37 -0
- data/processor/command/show_subcmd/max.rb +30 -0
- data/processor/command/show_subcmd/max_subcmd/list.rb +38 -0
- data/processor/command/show_subcmd/max_subcmd/stack.rb +36 -0
- data/processor/command/show_subcmd/max_subcmd/string.rb +42 -0
- data/processor/command/show_subcmd/max_subcmd/width.rb +37 -0
- data/processor/command/show_subcmd/trace.rb +29 -0
- data/processor/command/show_subcmd/trace_subcmd/print.rb +38 -0
- data/processor/command/source.rb +83 -0
- data/processor/command/step.rb +41 -0
- data/processor/command/tbreak.rb +19 -0
- data/processor/command/unalias.rb +44 -0
- data/processor/command/up.rb +87 -0
- data/processor/default.rb +56 -0
- data/processor/disassemble.rb +32 -0
- data/processor/eval.rb +96 -0
- data/processor/frame.rb +211 -0
- data/processor/help.rb +72 -0
- data/processor/hook.rb +133 -0
- data/processor/load_cmds.rb +101 -0
- data/processor/location.rb +128 -0
- data/processor/main.rb +394 -0
- data/processor/mock.rb +137 -0
- data/processor/msg.rb +28 -0
- data/processor/running.rb +230 -0
- data/processor/stepping.rb +115 -0
- data/processor/subcmd.rb +160 -0
- data/processor/validate.rb +355 -0
- data/test/data/enable.right +36 -0
- data/test/data/fname-with-blank.cmd +6 -0
- data/test/data/fname-with-blank.right +1 -0
- data/test/data/quit-Xdebug.right +3 -0
- data/test/data/quit.cmd +5 -0
- data/test/data/quit.right +0 -0
- data/test/example/fname with blank.rb +1 -0
- data/test/example/gcd-xx.rb +18 -0
- data/test/example/gcd.rb +19 -0
- data/test/example/gcd1.rb +24 -0
- data/test/example/null.rb +1 -0
- data/test/example/thread1.rb +3 -0
- data/test/functional/fn_helper.rb +112 -0
- data/test/functional/test-break-name.rb +52 -0
- data/test/functional/test-break.rb +51 -0
- data/test/functional/test-finish.rb +70 -0
- data/test/functional/test-fn_helper.rb +43 -0
- data/test/functional/test-list.rb +55 -0
- data/test/functional/test-next-bug.rb +49 -0
- data/test/functional/test-next.rb +101 -0
- data/test/functional/test-step.rb +272 -0
- data/test/functional/test-step2.rb +35 -0
- data/test/functional/test-tbreak.rb +41 -0
- data/test/integration/file-diff.rb +89 -0
- data/test/integration/helper.rb +78 -0
- data/test/integration/test-fname-with-blank.rb +12 -0
- data/test/integration/test-quit.rb +25 -0
- data/test/unit/cmd-helper.rb +46 -0
- data/test/unit/test-app-brkpt.rb +30 -0
- data/test/unit/test-app-brkptmgr.rb +51 -0
- data/test/unit/test-app-iseq.rb +49 -0
- data/test/unit/test-app-method.rb +54 -0
- data/test/unit/test-app-options.rb +61 -0
- data/test/unit/test-app-run.rb +16 -0
- data/test/unit/test-app-util.rb +28 -0
- data/test/unit/test-app-validate.rb +18 -0
- data/test/unit/test-base-subcmd.rb +61 -0
- data/test/unit/test-bin-trepanx.rb +48 -0
- data/test/unit/test-cmd-alias.rb +49 -0
- data/test/unit/test-cmd-break.rb +23 -0
- data/test/unit/test-cmd-exit.rb +27 -0
- data/test/unit/test-cmd-help.rb +101 -0
- data/test/unit/test-cmd-kill.rb +48 -0
- data/test/unit/test-intf-user.rb +46 -0
- data/test/unit/test-io-input.rb +27 -0
- data/test/unit/test-proc-eval.rb +37 -0
- data/test/unit/test-proc-frame.rb +79 -0
- data/test/unit/test-proc-help.rb +16 -0
- data/test/unit/test-proc-hook.rb +30 -0
- data/test/unit/test-proc-load_cmds.rb +41 -0
- data/test/unit/test-proc-location.rb +48 -0
- data/test/unit/test-proc-main.rb +96 -0
- data/test/unit/test-proc-validate.rb +91 -0
- data/test/unit/test-subcmd-help.rb +51 -0
- metadata +337 -0
data/io/string_array.rb
ADDED
@@ -0,0 +1,156 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
|
3
|
+
|
4
|
+
# Simulate I/O using lists of strings.
|
5
|
+
|
6
|
+
require 'rubygems'; require 'require_relative'
|
7
|
+
require_relative 'base_io'
|
8
|
+
|
9
|
+
# Simulate I/O using an array of strings. Sort of like StringIO, but
|
10
|
+
# even simplier.
|
11
|
+
class Trepan::StringArrayInput < Trepan::InputBase
|
12
|
+
|
13
|
+
def initialize(inp, opts={})
|
14
|
+
super
|
15
|
+
@closed = false
|
16
|
+
end
|
17
|
+
|
18
|
+
# this close() interface is defined for class compatibility
|
19
|
+
def close
|
20
|
+
@closed = true
|
21
|
+
end
|
22
|
+
|
23
|
+
def closed?
|
24
|
+
@closed
|
25
|
+
end
|
26
|
+
|
27
|
+
def eof?
|
28
|
+
@closed || @input.empty?
|
29
|
+
end
|
30
|
+
|
31
|
+
# Nothing to do here. Interface is for compatibility
|
32
|
+
def flush ; end
|
33
|
+
|
34
|
+
# Read a line of input. EOFError will be raised on EOF.
|
35
|
+
# Note that we don't support prompting
|
36
|
+
def readline
|
37
|
+
raise EOFError if eof?
|
38
|
+
if @input.empty?
|
39
|
+
raise EOFError
|
40
|
+
end
|
41
|
+
line = @input.shift
|
42
|
+
return line
|
43
|
+
end
|
44
|
+
|
45
|
+
class << self
|
46
|
+
# Use this to set where to read from.
|
47
|
+
def open(inp, opts={})
|
48
|
+
if inp.is_a?(Array)
|
49
|
+
return self.new(inp)
|
50
|
+
else
|
51
|
+
raise IOError, "Invalid input type (%s) for %s" % [inp.class, inp]
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
# Simulate I/O using an array of strings. Sort of like StringIO, but
|
58
|
+
# even simplier.
|
59
|
+
class Trepan::StringArrayOutput < Trepan::OutputBase
|
60
|
+
|
61
|
+
def initialize(out=[], opts={})
|
62
|
+
super
|
63
|
+
@closed = false
|
64
|
+
end
|
65
|
+
|
66
|
+
# Nothing to do here. Interface is for compatibility
|
67
|
+
def close
|
68
|
+
@closed = true
|
69
|
+
end
|
70
|
+
|
71
|
+
def closed?
|
72
|
+
@closed
|
73
|
+
end
|
74
|
+
|
75
|
+
def eof?
|
76
|
+
@closed || @output.empty?
|
77
|
+
end
|
78
|
+
|
79
|
+
# Nothing to do here. Interface is for compatibility
|
80
|
+
def flush ; end
|
81
|
+
|
82
|
+
# This method the debugger uses to write. In contrast to
|
83
|
+
# writeline, no newline is added to the end to `str'.
|
84
|
+
#
|
85
|
+
def write(msg)
|
86
|
+
raise ValueError if @closed
|
87
|
+
@output << msg
|
88
|
+
end
|
89
|
+
|
90
|
+
# used to write to a debugger that is connected to this
|
91
|
+
# server; Here, we use the null string '' as an indicator of a
|
92
|
+
# newline.
|
93
|
+
def writeline(msg)
|
94
|
+
write(msg)
|
95
|
+
write('')
|
96
|
+
end
|
97
|
+
|
98
|
+
class << self
|
99
|
+
# Use this to set where to write to. output can be a
|
100
|
+
# file object or a string. This code raises IOError on error.
|
101
|
+
#
|
102
|
+
# If another file was previously open upon calling this open,
|
103
|
+
# that will be stacked and will come back into use after
|
104
|
+
# a close_write().
|
105
|
+
def open(output=[])
|
106
|
+
if output.is_a?(Array)
|
107
|
+
return self.new(output)
|
108
|
+
else
|
109
|
+
raise IOError, ("Invalid output type (%s) for %s" %
|
110
|
+
[output.class, output])
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
# Demo
|
117
|
+
if __FILE__ == $0
|
118
|
+
inp = Trepan::StringArrayInput.open(['Now is the time', 'for all good men'])
|
119
|
+
line = inp.readline
|
120
|
+
p line
|
121
|
+
line = inp.readline
|
122
|
+
p line
|
123
|
+
begin
|
124
|
+
line = inp.readline
|
125
|
+
rescue EOFError
|
126
|
+
puts 'EOF hit on read'
|
127
|
+
end
|
128
|
+
|
129
|
+
out = Trepan::StringArrayOutput.open
|
130
|
+
p out.output
|
131
|
+
# line = io.readline('Type some more characters: ')
|
132
|
+
out.writeline('Hello, world!')
|
133
|
+
p out.output
|
134
|
+
out.write('Hello');
|
135
|
+
p out.output
|
136
|
+
out.writeline(', again.');
|
137
|
+
p out.output
|
138
|
+
# io.open_write(sys.stdout)
|
139
|
+
out.flush_after_write = true
|
140
|
+
out.write('Last hello')
|
141
|
+
puts "Output is closed? #{out.closed?}"
|
142
|
+
out.close
|
143
|
+
p out.output
|
144
|
+
begin
|
145
|
+
out.writeline("You won't see me")
|
146
|
+
rescue
|
147
|
+
end
|
148
|
+
|
149
|
+
# Closing after already closed is okay
|
150
|
+
out.close
|
151
|
+
puts "Output is closed? #{out.closed?}"
|
152
|
+
puts "Input is closed? #{inp.closed?}"
|
153
|
+
inp.close
|
154
|
+
puts "Input is closed? #{inp.closed?}"
|
155
|
+
end
|
156
|
+
|