ruby-debug 0.10.2 → 0.10.3
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/CHANGES +13 -0
- data/ChangeLog +307 -0
- data/README +15 -7
- data/Rakefile +7 -3
- data/bin/rdebug +106 -28
- data/cli/ruby-debug.rb +31 -2
- data/cli/ruby-debug/commands/breakpoints.rb +4 -0
- data/cli/ruby-debug/commands/continue.RB.save +48 -0
- data/cli/ruby-debug/commands/disassemble.RB +38 -0
- data/cli/ruby-debug/commands/frame.rb +46 -0
- data/cli/ruby-debug/commands/source.RB +44 -0
- data/cli/ruby-debug/interface.rb +1 -1
- data/rdbg.rb +0 -0
- data/test/base/base.rb +0 -0
- data/test/base/binding.rb +0 -0
- data/test/base/catchpoint.rb +0 -0
- data/test/cli/commands/catchpoint_test.rb +9 -8
- data/test/cli/commands/unit/regexp.rb +31 -0
- data/test/data/annotate.right +2 -0
- data/test/data/breakpoints.right +11 -7
- data/test/data/emacs_basic.right +7 -2
- data/test/data/finish.right +0 -12
- data/test/data/pm-bug.cmd +7 -0
- data/test/data/pm-bug.right +12 -0
- data/test/data/post-mortem.right +4 -4
- data/test/data/raise.right +3 -3
- data/test/dollar-0.rb +0 -0
- data/test/except-bug2.rb +7 -0
- data/test/gcd-dbg.rb +0 -0
- data/test/helper.rb +5 -1
- data/test/pm-base.rb +0 -0
- data/test/pm-bug.rb +3 -0
- data/test/pm.rb +0 -0
- data/test/raise.rb +0 -0
- data/test/scope-test.rb +8 -0
- data/test/tdebug.rb +10 -1
- data/test/test-annotate.rb +0 -0
- data/test/test-break-bad.rb +0 -0
- data/test/test-breakpoints.rb +0 -0
- data/test/test-catch.rb +0 -0
- data/test/test-condition.rb +0 -0
- data/test/test-ctrl.rb +0 -0
- data/test/test-display.rb +0 -0
- data/test/test-dollar-0.rb +9 -3
- data/test/test-edit.rb +0 -0
- data/test/test-emacs-basic.rb +0 -0
- data/test/test-enable.rb +0 -0
- data/test/test-finish.rb +7 -7
- data/test/test-frame.rb +1 -1
- data/test/test-help.rb +0 -0
- data/test/test-hist.rb +0 -0
- data/test/test-info-thread.rb +0 -0
- data/test/test-info-var.rb +0 -0
- data/test/test-info.rb +0 -0
- data/test/test-init.rb +0 -0
- data/test/test-list.rb +0 -0
- data/test/test-method.rb +0 -0
- data/test/test-output.rb +0 -0
- data/test/test-pm.rb +13 -0
- data/test/test-quit.rb +0 -0
- data/test/test-raise.rb +0 -0
- data/test/test-save.rb +0 -0
- data/test/test-setshow.rb +0 -0
- data/test/test-source.rb +0 -0
- data/test/test-stepping.rb +0 -0
- data/test/test-trace.rb +0 -0
- data/test/trunc-call.rb +31 -0
- data/test/tvar.rb +3 -0
- metadata +179 -177
data/CHANGES
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
0.10.3
|
2
|
+
11/17/08
|
3
|
+
|
4
|
+
- a backtrace now warns when it thinks the callstack is truncated which it
|
5
|
+
gets by comparing with caller()
|
6
|
+
- fix setting $0.
|
7
|
+
- fix bug in showing variables in post-mortem
|
8
|
+
- Document how Debugger.start with a block is intended to be used.
|
9
|
+
- Move Kernel#debugger from ruby-debug-base into ruby-debug
|
10
|
+
- Get regression tests working again
|
11
|
+
- Warn and add a "confirmation" when setting a breakpoint on a
|
12
|
+
file that is not loaded.
|
13
|
+
|
1
14
|
0.10.2
|
2
15
|
- debugger(steps=0) breaks inside of debugger rather than wait for a line event.
|
3
16
|
- trace var varname (stop|nostop) added which issues trace_var.
|
data/ChangeLog
CHANGED
@@ -1,3 +1,310 @@
|
|
1
|
+
2008-11-17 07:34 Rocky Bernstein
|
2
|
+
|
3
|
+
* CHANGES: Last commit before release.
|
4
|
+
|
5
|
+
2008-11-16 00:14 Rocky Bernstein
|
6
|
+
|
7
|
+
* ChangeLog, bin/rdebug, lib/ChangeLog: Add rdoc for rdebug script.
|
8
|
+
|
9
|
+
2008-11-15 22:13 Rocky Bernstein
|
10
|
+
|
11
|
+
* Rakefile, ext/ruby_debug.c: Go over RDOC documentation.
|
12
|
+
|
13
|
+
2008-11-15 21:51 Rocky Bernstein
|
14
|
+
|
15
|
+
* doc/ruby-debug.texi: Add one more reference to start with a block
|
16
|
+
|
17
|
+
2008-11-15 21:23 Rocky Bernstein
|
18
|
+
|
19
|
+
* doc/ruby-debug.texi: Remove hard-coded version number in example
|
20
|
+
output
|
21
|
+
|
22
|
+
2008-11-15 02:21 Rocky Bernstein
|
23
|
+
|
24
|
+
* ext/win32/.cvsignore: More administrivia
|
25
|
+
|
26
|
+
2008-11-15 02:20 Rocky Bernstein
|
27
|
+
|
28
|
+
* ext/win32: More administrivia
|
29
|
+
|
30
|
+
2008-11-15 02:18 Rocky Bernstein
|
31
|
+
|
32
|
+
* ., .cvsignore: More administrivia
|
33
|
+
|
34
|
+
2008-11-14 19:39 Rocky Bernstein
|
35
|
+
|
36
|
+
* ., .cvsignore: More administrivia
|
37
|
+
|
38
|
+
2008-11-14 19:38 Rocky Bernstein
|
39
|
+
|
40
|
+
* .cvsignore: Administrivia
|
41
|
+
|
42
|
+
2008-11-14 19:37 Rocky Bernstein
|
43
|
+
|
44
|
+
* ., README, Rakefile, doc, doc/.cvsignore: Go over documentation
|
45
|
+
for 0.10.3 release. rdoc creates files in doc/rdoc.
|
46
|
+
|
47
|
+
2008-11-14 19:28 Rocky Bernstein
|
48
|
+
|
49
|
+
* README, configure.ac, doc/ruby-debug.texi,
|
50
|
+
lib/ruby-debug-base.rb: Go over documentation and revise.
|
51
|
+
|
52
|
+
2008-11-14 15:32 Rocky Bernstein
|
53
|
+
|
54
|
+
* CHANGES, ChangeLog, cli/ruby-debug.rb,
|
55
|
+
cli/ruby-debug/commands/frame.rb, doc/ruby-debug.texi,
|
56
|
+
ext/ruby_debug.c, lib/ChangeLog, lib/ruby-debug-base.rb: Move
|
57
|
+
Debugger#debugger from base to cli. Revert code in ruby_debug.c
|
58
|
+
and block parameter in debugger. cf. -> Compare with. Document
|
59
|
+
Debugger.start better.
|
60
|
+
|
61
|
+
2008-11-13 10:29 Rocky Bernstein
|
62
|
+
|
63
|
+
* ChangeLog, ext/ruby_debug.c, lib/ChangeLog: Make
|
64
|
+
Debugger.start{block} work if Debugger.started? is false. Second
|
65
|
+
try.
|
66
|
+
|
67
|
+
2008-11-11 15:33 Rocky Bernstein
|
68
|
+
|
69
|
+
* ., Rakefile, test/cli/commands/catchpoint_test.rb,
|
70
|
+
test/cli/commands/unit, test/cli/commands/unit/regexp.rb: Start
|
71
|
+
unit test for command regular expressions. Much more willing out
|
72
|
+
to be done later....
|
73
|
+
|
74
|
+
2008-11-11 14:42 Rocky Bernstein
|
75
|
+
|
76
|
+
* test/data/raise.right: More line number changes in tdebug
|
77
|
+
|
78
|
+
2008-11-11 14:40 Rocky Bernstein
|
79
|
+
|
80
|
+
* test/data/raise.right: tdebug lines have changed
|
81
|
+
|
82
|
+
2008-11-11 02:07 Rocky Bernstein
|
83
|
+
|
84
|
+
* ChangeLog, cli/ruby-debug/commands/frame.rb, lib/ChangeLog,
|
85
|
+
test/test-dollar-0.rb, test/test-frame.rb, test/trunc-call.rb:
|
86
|
+
Tweak truncated stack test since Ruby's caller doesn't seem to
|
87
|
+
include (tail?) recursive calls and we do. Get regression tests
|
88
|
+
working in light of recent changes.
|
89
|
+
|
90
|
+
2008-11-10 08:47 Kent Sibilev
|
91
|
+
|
92
|
+
* ext/ruby_debug.c: register debug_frame_t->arg_ary with GC
|
93
|
+
|
94
|
+
2008-11-10 02:56 Kent Sibilev
|
95
|
+
|
96
|
+
* bin/rdebug, ext/ruby_debug.c: Trying to fix "if $0 == __FILE__"
|
97
|
+
ruby's idiom. Apparently setting $0 to
|
98
|
+
a new value doesn't work correctly. (Ruby's bug?)
|
99
|
+
|
100
|
+
$ cat t3.rb
|
101
|
+
p $0
|
102
|
+
p File.expand_path $0
|
103
|
+
$0 = File.expand_path $0
|
104
|
+
p $0
|
105
|
+
$ ruby t3.rb
|
106
|
+
"t3.rb"
|
107
|
+
"/Users/kent/Work/ruby-debug/trunk/t3.rb"
|
108
|
+
"/Users/ke"
|
109
|
+
|
110
|
+
2008-11-10 01:50 Kent Sibilev
|
111
|
+
|
112
|
+
* ext/ruby_debug.h: added declaration of
|
113
|
+
check_breakpoints_by_method method to remove compiler warning
|
114
|
+
|
115
|
+
2008-11-10 01:48 Kent Sibilev
|
116
|
+
|
117
|
+
* lib/ruby-debug-base.rb: a little bit more readable
|
118
|
+
|
119
|
+
2008-11-10 01:43 Kent Sibilev
|
120
|
+
|
121
|
+
* ext/ruby_debug.c: running at_exit hooks at the end of the
|
122
|
+
debug_load method in order to fix test cases a chance to run
|
123
|
+
|
124
|
+
2008-11-10 01:41 Kent Sibilev
|
125
|
+
|
126
|
+
* ext/ruby_debug.c: can't store a copy of the debug_context in the
|
127
|
+
stack like that, it doesn't play along with garbage collector.
|
128
|
+
|
129
|
+
2008-11-10 01:39 Kent Sibilev
|
130
|
+
|
131
|
+
* ext/ruby_debug.c: these two methods are unused
|
132
|
+
|
133
|
+
2008-11-10 01:36 Kent Sibilev
|
134
|
+
|
135
|
+
* ext/breakpoint.c: fix the compiler warning
|
136
|
+
|
137
|
+
2008-11-10 01:35 Kent Sibilev
|
138
|
+
|
139
|
+
* lib/ruby-debug-base.rb: Debugger.start must always call the
|
140
|
+
passed block
|
141
|
+
|
142
|
+
2008-11-07 19:35 Rocky Bernstein
|
143
|
+
|
144
|
+
* ChangeLog, cli/ruby-debug/commands/frame.rb, lib/ChangeLog:
|
145
|
+
Change truncated frame message.
|
146
|
+
|
147
|
+
2008-11-07 10:39 Rocky Bernstein
|
148
|
+
|
149
|
+
* ChangeLog, bin/rdebug, cli/ruby-debug.rb,
|
150
|
+
cli/ruby-debug/commands/frame.rb, lib/ChangeLog, test/tdebug.rb:
|
151
|
+
Add check to "where" to see if the call stack is truncated; task
|
152
|
+
#2354
|
153
|
+
|
154
|
+
2008-11-06 16:17 Rocky Bernstein
|
155
|
+
|
156
|
+
* ChangeLog, Rakefile, lib/ChangeLog: #22698 Allow ruby-debug-base
|
157
|
+
0.x.y.z be compatible with ruby-debug 0.x.y.
|
158
|
+
|
159
|
+
2008-11-02 21:59 Rocky Bernstein
|
160
|
+
|
161
|
+
* ChangeLog, ext/ruby_debug.c, lib/ChangeLog,
|
162
|
+
lib/ruby-debug-base.rb: Debugger.start with a block now stops
|
163
|
+
inside the block. Debugger.debugger with a block works like
|
164
|
+
Debugger.start with a block.
|
165
|
+
|
166
|
+
The whole interface is hopelessly kludgy and needs to be redone.
|
167
|
+
|
168
|
+
2008-10-27 15:29 Rocky Bernstein
|
169
|
+
|
170
|
+
* ChangeLog, test/data/raise.right: tdebug.rb line numbers changed.
|
171
|
+
Update test numbers -- I think this is right.
|
172
|
+
|
173
|
+
2008-10-26 14:54 Rocky Bernstein
|
174
|
+
|
175
|
+
* ChangeLog, ext/extconf.rb, ext/ruby_debug.c, lib/ChangeLog: Doc
|
176
|
+
typo. Add comment to remind me how to turn off optimizationin
|
177
|
+
extconf.rb
|
178
|
+
|
179
|
+
2008-10-25 18:10 Rocky Bernstein
|
180
|
+
|
181
|
+
* cli/ruby-debug/interface.rb: Fix mismatched interface.
|
182
|
+
|
183
|
+
2008-10-25 16:01 Rocky Bernstein
|
184
|
+
|
185
|
+
* cli/ruby-debug/commands/breakpoints.rb, ext/ruby_debug.c,
|
186
|
+
lib/ChangeLog, test/data/annotate.right,
|
187
|
+
test/data/breakpoints.right, test/data/emacs_basic.right,
|
188
|
+
test/data/finish.right, test/test-finish.rb: Warn and add a
|
189
|
+
"confirmation" when setting a breakpoint on a file that is not
|
190
|
+
loaded. Regression tests no longer fail.
|
191
|
+
|
192
|
+
2008-09-22 21:01 Rocky Bernstein
|
193
|
+
|
194
|
+
* cli/ruby-debug.rb: Remove a $DEBUG warning
|
195
|
+
|
196
|
+
2008-09-22 00:07 Rocky Bernstein
|
197
|
+
|
198
|
+
* doc, doc/.cvsignore, lib/ruby-debug-base.rb,
|
199
|
+
test/data/pm-bug.cmd, test/data/pm-bug.right,
|
200
|
+
test/data/post-mortem.right, test/pm-bug.rb, test/test-pm.rb:
|
201
|
+
#22118 bug in showing variables post mortem. Patch thanks to
|
202
|
+
rubikitch.
|
203
|
+
Update pm.rb integration test.
|
204
|
+
|
205
|
+
2008-09-21 23:09 Rocky Bernstein
|
206
|
+
|
207
|
+
* CHANGES: In 0.10.3 territory now.
|
208
|
+
|
209
|
+
2008-09-21 23:06 Rocky Bernstein
|
210
|
+
|
211
|
+
* ext/ruby_debug.c, test/tdebug.rb: tdebug.rb: modify frozen string
|
212
|
+
taken from rdebug. Patch from Martin Krauskopf.
|
213
|
+
ruby_debug.c: in 0.10.3 now.
|
214
|
+
|
215
|
+
2008-09-03 17:33 Rocky Bernstein
|
216
|
+
|
217
|
+
* doc: Administrivia
|
218
|
+
|
219
|
+
2008-09-03 17:29 Rocky Bernstein
|
220
|
+
|
221
|
+
* ChangeLog, lib/ChangeLog, test/helper.rb: Show line numbers when
|
222
|
+
$DEBUG is set. Patch #21772 from Martin Krauskopf
|
223
|
+
|
224
|
+
2008-08-28 05:43 Kent Sibilev
|
225
|
+
|
226
|
+
* ext/ruby_debug.c:
|
227
|
+
|
228
|
+
2008-08-28 05:41 Kent Sibilev
|
229
|
+
|
230
|
+
* CHANGES: preparing version 0.10.2
|
231
|
+
|
232
|
+
2008-08-15 17:36 Kent Sibilev
|
233
|
+
|
234
|
+
* cli/ruby-debug/commands/list.rb: Fixed an exception when calling
|
235
|
+
Kernel#debugger method from the eval code
|
236
|
+
|
237
|
+
2008-07-10 09:47 Kent Sibilev
|
238
|
+
|
239
|
+
* cli/ruby-debug/commands/continue.rb, cli/ruby-debug/processor.rb:
|
240
|
+
allow 'continue' command from post-mortem
|
241
|
+
|
242
|
+
here is an example where it is needed:
|
243
|
+
|
244
|
+
...
|
245
|
+
Debugger.post_mortem do
|
246
|
+
method_that_raises_an_exception()
|
247
|
+
end
|
248
|
+
...
|
249
|
+
|
250
|
+
I want to be able to inspect the post_mortem context and then to
|
251
|
+
continue the program execution
|
252
|
+
|
253
|
+
2008-07-10 08:55 Kent Sibilev
|
254
|
+
|
255
|
+
* ext/ruby_debug.c: fixed segfault and finish command
|
256
|
+
|
257
|
+
2008-07-09 19:43 Kent Sibilev
|
258
|
+
|
259
|
+
* cli/ruby-debug/commands/breakpoints.rb: allow setting a
|
260
|
+
breakpoint on a file that is not yet loaded
|
261
|
+
|
262
|
+
2008-07-09 19:29 Kent Sibilev
|
263
|
+
|
264
|
+
* cli/ruby-debug/interface.rb: RemoteInterface should extend
|
265
|
+
Interface class
|
266
|
+
|
267
|
+
2008-07-09 19:25 Kent Sibilev
|
268
|
+
|
269
|
+
* bin/rdebug: $0 is frozen in Ruby 1.8.7
|
270
|
+
|
271
|
+
2008-07-09 00:43 Rocky Bernstein
|
272
|
+
|
273
|
+
* cli/ruby-debug.rb, cli/ruby-debug/processor.rb: Some meager (and
|
274
|
+
not complete) support for a verbose mode on
|
275
|
+
source'ing a file. Some more print's turned to errmsg as
|
276
|
+
appropriate.
|
277
|
+
|
278
|
+
2008-07-07 07:11 Rocky Bernstein
|
279
|
+
|
280
|
+
* lib/ruby-debug-base.rb: Tracker [#20041] start erroneously moved
|
281
|
+
to Kernel - should be in
|
282
|
+
Debugger.start
|
283
|
+
|
284
|
+
2008-07-03 16:03 Rocky Bernstein
|
285
|
+
|
286
|
+
* doc/ruby-debug.texi: Document that backslash can escape debugger
|
287
|
+
command separation.
|
288
|
+
|
289
|
+
2008-06-20 06:46 Rocky Bernstein
|
290
|
+
|
291
|
+
* CHANGES, cli/ruby-debug/commands/trace.rb,
|
292
|
+
lib/ruby-debug-base.rb: trace.rb: add "trace var"
|
293
|
+
ruby-debug-base.rb: remove another undefined warning.
|
294
|
+
|
295
|
+
2008-05-27 03:54 Rocky Bernstein
|
296
|
+
|
297
|
+
* cli/ruby-debug/commands/save.rb, cli/ruby-debug/interface.rb,
|
298
|
+
test/data/save.cmd, test/data/save.right, test/test-save.rb: Add
|
299
|
+
save test. save.rb: use pretty-printed regexp. Interface, for now
|
300
|
+
add restart_file accessor like the others. The processor
|
301
|
+
interface
|
302
|
+
need revision though.
|
303
|
+
|
304
|
+
2008-05-24 01:27 Rocky Bernstein
|
305
|
+
|
306
|
+
* ChangeLog, doc/ruby-debug.texi, lib/ChangeLog: Remove dup lines.
|
307
|
+
|
1
308
|
2008-05-23 14:57 Rocky Bernstein
|
2
309
|
|
3
310
|
* cli/ruby-debug/commands/save.rb: Catchpoints have changed. Fix
|
data/README
CHANGED
@@ -3,7 +3,8 @@
|
|
3
3
|
== Overview
|
4
4
|
|
5
5
|
ruby-debug is a fast implementation of the standard debugger debug.rb.
|
6
|
-
The faster execution speed is achieved by utilizing a new hook
|
6
|
+
The faster execution speed is achieved by utilizing a new hook in the
|
7
|
+
Ruby C API.
|
7
8
|
|
8
9
|
== Requirements
|
9
10
|
|
@@ -28,20 +29,19 @@ ruby-debug is provided as a RubyGem. To install:
|
|
28
29
|
|
29
30
|
This should also pull in <tt>ruby-debug-base</tt> as a dependency.
|
30
31
|
|
31
|
-
(If you install ruby-debug-base explicitly, you can add in the
|
32
|
-
|
32
|
+
(If you install ruby-debug-base explicitly, you can add in the <tt>--test</tt>
|
33
|
+
option after "install" to have the regression test run before
|
33
34
|
installing.)
|
34
35
|
|
35
36
|
For Emacs support and the Reference Manual, get
|
36
37
|
<tt>ruby-debug-extra</tt>. This is not a RubyGem, you'll need a Make
|
37
38
|
program and a POSIX shell. With this installed, run:
|
38
39
|
|
39
|
-
<pre>
|
40
40
|
sh ./configure
|
41
41
|
make
|
42
42
|
make test # optional, but a good idea
|
43
43
|
sudo make install
|
44
|
-
|
44
|
+
|
45
45
|
|
46
46
|
==== Install on MS Windows
|
47
47
|
|
@@ -86,13 +86,21 @@ code execution at run time.
|
|
86
86
|
...
|
87
87
|
end
|
88
88
|
|
89
|
+
or
|
90
|
+
|
91
|
+
require 'ruby-debug' ;
|
92
|
+
Debugger.start do
|
93
|
+
...
|
94
|
+
debugger
|
95
|
+
end
|
96
|
+
|
89
97
|
When Kernel#debugger method is executed, the debugger is activated
|
90
98
|
and you will be able to inspect and step through your code.
|
91
99
|
|
92
100
|
== Performance
|
93
101
|
|
94
|
-
The debug.rb script that comes with the standard Ruby library uses
|
95
|
-
Kernel#set_trace_func API. Implementing the debugger in pure Ruby has
|
102
|
+
The <tt>debug.rb</tt> script that comes with the standard Ruby library uses
|
103
|
+
<tt>Kernel#set_trace_func</tt> API. Implementing the debugger in pure Ruby has
|
96
104
|
a negative impact on the speed of your program execution. This is
|
97
105
|
because the Ruby interpreter creates a Binding object each trace call,
|
98
106
|
even though it is not being used most of the time. ruby-debug moves
|
data/Rakefile
CHANGED
@@ -20,7 +20,10 @@ COMMON_FILES = FileList[
|
|
20
20
|
'Rakefile',
|
21
21
|
]
|
22
22
|
|
23
|
-
CLI_TEST_FILE_LIST = FileList['test/
|
23
|
+
CLI_TEST_FILE_LIST = FileList['test/cli/commands/unit/*.rb',
|
24
|
+
'test/cli/commands/*_test.rb',
|
25
|
+
'test/cli/**/*_test.rb',
|
26
|
+
'test/test-*.rb']
|
24
27
|
CLI_FILES = COMMON_FILES + FileList[
|
25
28
|
"cli/**/*",
|
26
29
|
'ChangeLog',
|
@@ -147,7 +150,7 @@ EOF
|
|
147
150
|
spec.date = Time.now
|
148
151
|
spec.rubyforge_project = 'ruby-debug'
|
149
152
|
spec.add_dependency('columnize', '>= 0.1')
|
150
|
-
spec.add_dependency('ruby-debug-base', RUBY_DEBUG_VERSION)
|
153
|
+
spec.add_dependency('ruby-debug-base', "~> #{RUBY_DEBUG_VERSION}.0")
|
151
154
|
|
152
155
|
# FIXME: work out operational logistics for this
|
153
156
|
# spec.test_files = FileList[CLI_TEST_FILE_LIST]
|
@@ -217,13 +220,14 @@ end
|
|
217
220
|
# --------- RDoc Documentation ------
|
218
221
|
desc "Generate rdoc documentation"
|
219
222
|
Rake::RDocTask.new("rdoc") do |rdoc|
|
220
|
-
rdoc.rdoc_dir = 'doc'
|
223
|
+
rdoc.rdoc_dir = 'doc/rdoc'
|
221
224
|
rdoc.title = "ruby-debug"
|
222
225
|
# Show source inline with line numbers
|
223
226
|
rdoc.options << "--inline-source" << "--line-numbers"
|
224
227
|
# Make the readme file the start page for the generated html
|
225
228
|
rdoc.options << '--main' << 'README'
|
226
229
|
rdoc.rdoc_files.include('bin/**/*',
|
230
|
+
'cli/ruby-debug/commands/*.rb',
|
227
231
|
'lib/**/*.rb',
|
228
232
|
'ext/**/ruby_debug.c',
|
229
233
|
'README',
|
data/bin/rdebug
CHANGED
@@ -1,5 +1,106 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
|
2
|
+
|
3
|
+
#=== Summary
|
4
|
+
#
|
5
|
+
#A command-line front-end to the Ruby debugger, <tt>ruby-debug</tt>, the
|
6
|
+
#Fast Ruby Debugger.
|
7
|
+
#
|
8
|
+
#Command invocation:
|
9
|
+
#
|
10
|
+
# rdebug [options] [--] [script-options] ruby-script-to-debug
|
11
|
+
# rdebug [options] [script-options] [--client]
|
12
|
+
# rdebug [--version | --help]
|
13
|
+
#
|
14
|
+
#=== Options
|
15
|
+
#
|
16
|
+
#<tt>-A | --annotate</tt> <i>level</i>::
|
17
|
+
# Set gdb-style annotation to <i>level</i>, a number. Additional
|
18
|
+
# information is output automatically when program state is
|
19
|
+
# changed. This can be used by front-ends such as GNU Emacs to post
|
20
|
+
# this updated information without having to poll for it.
|
21
|
+
#
|
22
|
+
#<tt>--client</tt>::
|
23
|
+
# Connect to a remote debugger. Used with another rdebug invocation
|
24
|
+
# using <tt>--server</tt>. See also <tt>--host</tt> and
|
25
|
+
# <tt>--cport</tt> options
|
26
|
+
#
|
27
|
+
#<tt>--cport=</tt><i>port</i>::
|
28
|
+
# Use port <i>port</i> for access to debugger control.
|
29
|
+
#
|
30
|
+
#<tt>-d | --debug</tt>::
|
31
|
+
# Set $DEBUG true.
|
32
|
+
#
|
33
|
+
#<tt>--emacs</tt>::
|
34
|
+
# Activates full GNU Emacs mode. Is the equivalent of setting the
|
35
|
+
# options <tt>--emacs-basic --annotate=3 --no-stop --no-control
|
36
|
+
# --post-mortem</tt>.
|
37
|
+
#
|
38
|
+
#<tt>--emacs-basic</tt>::
|
39
|
+
# Activates GNU Emacs mode. Debugger prompts are prefaced with two
|
40
|
+
# octal 032 characters.
|
41
|
+
#
|
42
|
+
#<tt>-h | --host=</tt><i>host</i>::
|
43
|
+
# Use host name <i>host</i> for remote debugging.
|
44
|
+
#
|
45
|
+
#<tt>-I | --include</tt> <i>path</i>
|
46
|
+
# Add <i>path</i> to <tt>$LOAD_PATH</tt>
|
47
|
+
#
|
48
|
+
#<tt>-m | --post-mortem</tt>::
|
49
|
+
# Activate post-mortem mode.
|
50
|
+
#
|
51
|
+
#<tt>--no-control</tt>::
|
52
|
+
# Do not automatically start control thread.
|
53
|
+
#
|
54
|
+
#<tt>--no-stop</tt>::
|
55
|
+
# Do not stop when script is loaded.
|
56
|
+
#
|
57
|
+
#<tt>-p | --port=PORT</tt>::
|
58
|
+
# Host name used for remote debugging.
|
59
|
+
#
|
60
|
+
#<tt>-r | --require</tt><i>script</i>::
|
61
|
+
# Require the library, before executing your script.
|
62
|
+
#
|
63
|
+
#<tt>--script</tt> <i>file</i>::
|
64
|
+
# Run debugger script file <i>file</i>
|
65
|
+
#
|
66
|
+
#<tt>-x | --trace</tt>::
|
67
|
+
# Show lines before executing them.
|
68
|
+
#
|
69
|
+
#<tt>--no-quit</tt>::
|
70
|
+
# Do not quit when script terminates. Instead rerun the
|
71
|
+
# program.
|
72
|
+
#
|
73
|
+
#<tt>--version</tt>::
|
74
|
+
# Show the version number and exit.
|
75
|
+
#
|
76
|
+
#<tt>--verbose</tt>::
|
77
|
+
# Turn on verbose mode.
|
78
|
+
#
|
79
|
+
#<tt>--v</tt>::
|
80
|
+
# Print the version number, then turn on verbose mode if
|
81
|
+
# a script name is given. If no script name is given
|
82
|
+
# just exit after printing the version number.
|
83
|
+
#
|
84
|
+
#<tt>--nx</tt>::
|
85
|
+
# Don’t execute commands found in any initialization
|
86
|
+
# files, e.g. <tt>.rdebugrc</tt>.
|
87
|
+
#
|
88
|
+
#<tt>--keep-frame-binding</tt>::
|
89
|
+
# Keep frame bindings.
|
90
|
+
#
|
91
|
+
#<tt>--script=</tt><i>file</i>::
|
92
|
+
# Name of the script file to run
|
93
|
+
#
|
94
|
+
#<tt>-s | --server</tt>::
|
95
|
+
# Listen for remote connections. Another rdebug session
|
96
|
+
# accesses using the <tt>--client</tt> option. See also the
|
97
|
+
# <tt>--host</tt>, <tt>--port</tt> and <tt>--cport</tt> options
|
98
|
+
#
|
99
|
+
#<tt>-w | --wait</tt>::
|
100
|
+
# Wait for a client connection; implies <tt>-s</tt> option.
|
101
|
+
#
|
102
|
+
#<tt>--help</tt>::
|
103
|
+
# Show invocation help and exit.
|
3
104
|
|
4
105
|
require 'rubygems'
|
5
106
|
require 'optparse'
|
@@ -16,34 +117,11 @@ def debug_program(options)
|
|
16
117
|
exit $?.exitstatus
|
17
118
|
end
|
18
119
|
print "\032\032starting\n" if Debugger.annotate and Debugger.annotate > 2
|
19
|
-
unless options.no_rewrite_program
|
20
|
-
# Set $0 so things like __FILE == $0 work.
|
21
|
-
# A more reliable way to do this is to put $0 = __FILE__ *after*
|
22
|
-
# loading the script to be debugged. For this, adding a debug hook
|
23
|
-
# for the first time and then switching to the debug hook that's
|
24
|
-
# normally used would be helpful. Doing this would also help other
|
25
|
-
# first-time initializations such as reloading debugger state
|
26
|
-
# after a restart.
|
27
120
|
|
28
|
-
|
29
|
-
|
30
|
-
|
121
|
+
# Record where we are we can know if the call stack has been
|
122
|
+
# truncated or not.
|
123
|
+
Debugger.start_sentinal=caller(0)[1]
|
31
124
|
|
32
|
-
# cygwin does some sort of funky truncation on $0 ./abcdef => ./ab
|
33
|
-
# probably something to do with 3-letter extension truncation.
|
34
|
-
# The hacky workaround is to do slice assignment. Ugh.
|
35
|
-
d0 = if '.' == File.dirname(Debugger::PROG_SCRIPT) and
|
36
|
-
Debugger::PROG_SCRIPT[0..0] != '.'
|
37
|
-
File.join('.', Debugger::PROG_SCRIPT)
|
38
|
-
else
|
39
|
-
Debugger::PROG_SCRIPT
|
40
|
-
end
|
41
|
-
if $0.frozen?
|
42
|
-
$0 = d0
|
43
|
-
else
|
44
|
-
$0[0..-1] = d0
|
45
|
-
end
|
46
|
-
end
|
47
125
|
bt = Debugger.debug_load(Debugger::PROG_SCRIPT, options.stop, false)
|
48
126
|
if bt
|
49
127
|
if options.post_mortem
|
@@ -267,7 +345,7 @@ else
|
|
267
345
|
# save script name
|
268
346
|
prog_script = ARGV.shift
|
269
347
|
prog_script = whence_file(prog_script) unless File.exist?(prog_script)
|
270
|
-
Debugger::PROG_SCRIPT = prog_script
|
348
|
+
Debugger::PROG_SCRIPT = File.expand_path prog_script
|
271
349
|
|
272
350
|
# install interruption handler
|
273
351
|
trap('INT') { Debugger.interrupt_last }
|