rb8-trepanning 0.1.5 → 0.1.6
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 +18 -4
- data/ChangeLog +100 -87
- data/Makefile +23 -4
- data/README.textile +3 -3
- data/Rakefile +26 -20
- data/app/complete.rb +13 -13
- data/app/default.rb +8 -8
- data/app/display.rb +7 -7
- data/app/frame.rb +8 -8
- data/app/irb.rb +15 -15
- data/app/options.rb +25 -25
- data/app/run.rb +16 -8
- data/app/util.rb +7 -7
- data/bin/trepan8 +2 -2
- data/check-filter.rb +21 -0
- data/interface.rb +4 -4
- data/interface/user.rb +11 -11
- data/io.rb +18 -19
- data/io/input.rb +14 -12
- data/lib/debugger.rb +3 -1
- data/lib/trepanning.rb +30 -28
- data/processor.rb +41 -38
- data/processor/command.rb +9 -9
- data/processor/command/alias.rb +6 -6
- data/processor/command/down.rb +1 -2
- data/processor/command/edit.rb +12 -8
- data/processor/command/eval.rb +7 -7
- data/processor/command/info_subcmd/macro.rb +6 -6
- data/processor/command/info_subcmd/program.rb +5 -1
- data/processor/command/macro.rb +6 -6
- data/processor/command/show_subcmd/abbrev.rb +2 -2
- data/processor/command/up.rb +1 -2
- data/processor/complete.rb +120 -0
- data/processor/default.rb +13 -9
- data/processor/load_cmds.rb +18 -97
- data/processor/location.rb +34 -31
- data/processor/msg.rb +5 -5
- data/processor/validate.rb +44 -35
- data/test/data/break_loop_bug.right +2 -2
- data/test/data/edit.cmd +1 -1
- data/test/data/edit.right +7 -1
- data/test/data/printvar.right +2 -2
- data/test/data/raise.right +0 -1
- data/test/data/trace-mingw.right +28 -0
- data/test/integration/.gitignore +1 -0
- data/test/integration/test-raise.rb +10 -1
- data/test/integration/test-trace.rb +10 -6
- data/test/unit/test-app-options.rb +9 -3
- data/test/unit/test-app-run.rb +8 -1
- data/test/unit/test-cmd-alias.rb +2 -2
- data/test/unit/test-proc-default.rb +34 -0
- metadata +10 -6
@@ -5,11 +5,11 @@ debugger testing is on.
|
|
5
5
|
Breakpoint 1 file bp_loop_issue.rb, line 2
|
6
6
|
+ break_loop_bug.cmd line 3: cont
|
7
7
|
Breakpoint 1 at bp_loop_issue.rb:2
|
8
|
-
|
8
|
+
xx (bp_loop_issue.rb:2)
|
9
9
|
sleep 0.01
|
10
10
|
+ break_loop_bug.cmd line 4: cont
|
11
11
|
Breakpoint 1 at bp_loop_issue.rb:2
|
12
|
-
|
12
|
+
xx (bp_loop_issue.rb:2)
|
13
13
|
sleep 0.01
|
14
14
|
+ break_loop_bug.cmd line 5: cont
|
15
15
|
trepan8: That's all, folks...
|
data/test/data/edit.cmd
CHANGED
data/test/data/edit.right
CHANGED
@@ -3,22 +3,28 @@ def gcd(a, b)
|
|
3
3
|
debugger testing is on.
|
4
4
|
+ edit.cmd line 5: # Edit using current line position.
|
5
5
|
+ edit.cmd line 6: edit
|
6
|
+
*** Editor echo FAKE-EDITOR is not executable. Trying anyway...
|
6
7
|
Running echo FAKE-EDITOR +4 "gcd.rb"...
|
7
8
|
FAKE-EDITOR +4 gcd.rb
|
8
9
|
+ edit.cmd line 7: edit 7
|
10
|
+
*** Editor echo FAKE-EDITOR is not executable. Trying anyway...
|
9
11
|
Running echo FAKE-EDITOR +7 "gcd.rb"...
|
10
12
|
FAKE-EDITOR +7 gcd.rb
|
11
13
|
+ edit.cmd line 8: edit ../example/gcd.rb 5
|
14
|
+
*** Editor echo FAKE-EDITOR is not executable. Trying anyway...
|
12
15
|
Running echo FAKE-EDITOR +5 "gcd.rb"...
|
13
16
|
FAKE-EDITOR +5 gcd.rb
|
14
17
|
+ edit.cmd line 9: # File should not exist
|
15
18
|
+ edit.cmd line 10: edit foo
|
19
|
+
*** Editor echo FAKE-EDITOR is not executable. Trying anyway...
|
16
20
|
*** File "foo" is not readable.
|
17
21
|
+ edit.cmd line 11: # Add space to the end of 'edit'
|
18
|
-
+ edit.cmd line 12: edit
|
22
|
+
+ edit.cmd line 12: edit
|
23
|
+
*** Editor echo FAKE-EDITOR is not executable. Trying anyway...
|
19
24
|
Running echo FAKE-EDITOR +4 "gcd.rb"...
|
20
25
|
FAKE-EDITOR +4 gcd.rb
|
21
26
|
+ edit.cmd line 13: edit ../example/gcd.rb
|
27
|
+
*** Editor echo FAKE-EDITOR is not executable. Trying anyway...
|
22
28
|
Running echo FAKE-EDITOR +1 "gcd.rb"...
|
23
29
|
FAKE-EDITOR +1 gcd.rb
|
24
30
|
+ edit.cmd line 14: quit!
|
data/test/data/printvar.right
CHANGED
@@ -11,7 +11,7 @@ basename is on.
|
|
11
11
|
Breakpoint 1 file gcd.rb, line 6
|
12
12
|
+ printvar.cmd line 10: continue
|
13
13
|
Breakpoint 1 at gcd.rb:6
|
14
|
-
|
14
|
+
xx (gcd.rb:6)
|
15
15
|
if a > b
|
16
16
|
+ printvar.cmd line 11: pr a
|
17
17
|
3
|
@@ -19,7 +19,7 @@ if a > b
|
|
19
19
|
[3, 5]
|
20
20
|
+ printvar.cmd line 13: continue
|
21
21
|
Breakpoint 1 at gcd.rb:6
|
22
|
-
|
22
|
+
xx (gcd.rb:6)
|
23
23
|
if a > b
|
24
24
|
+ printvar.cmd line 14: eval [a,b]
|
25
25
|
[2, 3]
|
data/test/data/raise.right
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
-- (gcd.rb:4 @2)
|
2
|
+
def gcd(a, b)
|
3
|
+
-- (gcd.rb:18 @2)
|
4
|
+
a, b = ARGV[0..1].map {|arg| arg.to_i}
|
5
|
+
-- (gcd.rb:19 @45)
|
6
|
+
puts "The GCD of %d and %d is %d" % [a, b, gcd(a, b)]
|
7
|
+
-- (gcd.rb:6 @4)
|
8
|
+
if a > b
|
9
|
+
-- (gcd.rb:12 @40)
|
10
|
+
if a == 1 or b-a == 0
|
11
|
+
METHOD Object#gcd(a, b)
|
12
|
+
-> (gcd.rb:4 @2)
|
13
|
+
def gcd(a, b)
|
14
|
+
-- (gcd.rb:10 @24)
|
15
|
+
return nil if a <= 0
|
16
|
+
-- (gcd.rb:15 @71)
|
17
|
+
return gcd(b-a, a)
|
18
|
+
-- (gcd.rb:6 @4)
|
19
|
+
if a > b
|
20
|
+
-- (gcd.rb:12 @40)
|
21
|
+
if a == 1 or b-a == 0
|
22
|
+
<- (gcd.rb:13 @68)
|
23
|
+
R=> 1
|
24
|
+
return a
|
25
|
+
<- (gcd.rb:16 @88)
|
26
|
+
R=> 1
|
27
|
+
end
|
28
|
+
The GCD of 3 and 5 is 1
|
data/test/integration/.gitignore
CHANGED
@@ -14,8 +14,17 @@ class TestRaise < Test::Unit::TestCase
|
|
14
14
|
RUBY_VERSION =~ /1.9/
|
15
15
|
common_setup(__FILE__)
|
16
16
|
Dir.chdir(@srcdir) do
|
17
|
+
filter = Proc.new{|got_lines, correct_lines|
|
18
|
+
new_lines = []
|
19
|
+
got_lines.each do |s|
|
20
|
+
new_lines << s unless s == 'x'
|
21
|
+
end
|
22
|
+
got_lines[0..-1] = new_lines[0..-1]
|
23
|
+
}
|
17
24
|
assert_equal(true,
|
18
|
-
run_debugger(@testname,
|
25
|
+
run_debugger(@testname,
|
26
|
+
@prefix + '../example/raise.rb',
|
27
|
+
nil, filter))
|
19
28
|
end
|
20
29
|
end
|
21
30
|
end
|
@@ -2,15 +2,19 @@
|
|
2
2
|
require 'test/unit'
|
3
3
|
require 'rubygems'; require 'require_relative'
|
4
4
|
require_relative 'helper'
|
5
|
+
require 'rbconfig'
|
5
6
|
|
6
7
|
class TestTrace < Test::Unit::TestCase
|
7
8
|
include TestHelper
|
8
|
-
TREPAN_LOC
|
9
|
+
TREPAN_LOC =
|
10
|
+
if RbConfig::CONFIG['target_os'].start_with?('mingw')
|
11
|
+
/.. \((?:[A-Za-z]:)?.+:\d+( @\d+)?\)/
|
12
|
+
else
|
13
|
+
/.. \(.+:\d+( @\d+)?\)/
|
14
|
+
end
|
9
15
|
def test_trepan_trace
|
10
|
-
skip "We may get different results on an unpatched 1.9.2" if
|
11
|
-
RUBY_VERSION =~ /1.9/
|
12
16
|
common_setup(__FILE__)
|
13
|
-
Dir.chdir(@srcdir) do
|
17
|
+
Dir.chdir(@srcdir) do
|
14
18
|
last_line = nil
|
15
19
|
filter = Proc.new{|got_lines, correct_lines|
|
16
20
|
got_lines.each_with_index do |line, i|
|
@@ -23,8 +27,8 @@ class TestTrace < Test::Unit::TestCase
|
|
23
27
|
got_lines[last_line..-1] = got_lines[last_line] if last_line
|
24
28
|
}
|
25
29
|
rightfile = File.join(%W(.. data #{@testname}))
|
26
|
-
assert_equal(true, run_debugger(@testname,
|
27
|
-
"-x #{@prefix}../example/gcd.rb 3 5",
|
30
|
+
assert_equal(true, run_debugger(@testname,
|
31
|
+
"-x #{@prefix}../example/gcd.rb 3 5",
|
28
32
|
nil, filter, nil, rightfile))
|
29
33
|
end
|
30
34
|
end
|
@@ -31,7 +31,13 @@ class TestAppOptions < Test::Unit::TestCase
|
|
31
31
|
assert_equal(orig_cd, @options[:chdir])
|
32
32
|
assert_not_equal('', @stderr.string)
|
33
33
|
assert_equal('', @stdout.string)
|
34
|
-
|
34
|
+
# Looks like on various MinGW systems Tempfile and tf.path and unlike don't
|
35
|
+
# work together
|
36
|
+
begin
|
37
|
+
File.unlink tf.path
|
38
|
+
rescue
|
39
|
+
end
|
40
|
+
|
35
41
|
# FIXME: add test where directory isn't executable.
|
36
42
|
end
|
37
43
|
|
@@ -53,7 +59,7 @@ class TestAppOptions < Test::Unit::TestCase
|
|
53
59
|
end
|
54
60
|
|
55
61
|
def no_test_help_and_version_opts
|
56
|
-
omit unless Process.respond_to?(:fork)
|
62
|
+
omit unless Process.respond_to?(:fork)
|
57
63
|
Process.fork {
|
58
64
|
%w(help version).each do |name|
|
59
65
|
setup
|
@@ -88,7 +94,7 @@ class TestAppOptions < Test::Unit::TestCase
|
|
88
94
|
assert_equal(true, @options[:client])
|
89
95
|
## FIXME - reinstate
|
90
96
|
## assert_equal(false, @options[:server])
|
91
|
-
|
97
|
+
|
92
98
|
end
|
93
99
|
|
94
100
|
end
|
data/test/unit/test-app-run.rb
CHANGED
@@ -6,7 +6,14 @@ require_relative '../../app/run'
|
|
6
6
|
class TestAppRun < Test::Unit::TestCase
|
7
7
|
include Trepan
|
8
8
|
def test_whence
|
9
|
-
|
9
|
+
resolved_file = whence_file('irb')
|
10
|
+
if RbConfig::CONFIG['target_os'].start_with?('mingw')
|
11
|
+
assert_equal(true, File.readable?(resolved_file),
|
12
|
+
"file #{resolved_file} should be readable")
|
13
|
+
else
|
14
|
+
assert_equal(true, File.executable?(resolved_file),
|
15
|
+
"file #{resolved_file} should be executable")
|
16
|
+
end
|
10
17
|
ng = whence_file('probably-does-not-exist')
|
11
18
|
assert_equal(true, File.executable?(ng) || ng == 'probably-does-not-exist')
|
12
19
|
end
|
data/test/unit/test-cmd-alias.rb
CHANGED
@@ -33,8 +33,8 @@ class TestCommandAliasUnalias < Test::Unit::TestCase
|
|
33
33
|
def alias_defined?(alias_name)
|
34
34
|
@cmdproc.aliases.member?(alias_name)
|
35
35
|
end
|
36
|
-
|
37
|
-
def
|
36
|
+
|
37
|
+
def test_alias_unalias_command
|
38
38
|
|
39
39
|
assert_equal(false, @cmdproc.aliases.empty?,
|
40
40
|
'There should be some aliases defined')
|
@@ -0,0 +1,34 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'test/unit'
|
3
|
+
|
4
|
+
# Test Trepan::CmdProcessor::Default
|
5
|
+
class TestProcDefault < Test::Unit::TestCase
|
6
|
+
|
7
|
+
DIR = File.dirname(__FILE__)
|
8
|
+
DEFAULT_RBFILE = File.join(%W(#{DIR} .. .. processor default.rb))
|
9
|
+
|
10
|
+
def test_maxwidth_setting
|
11
|
+
ENV['COLUMNS'] = '50'
|
12
|
+
Trepan::CmdProcessor.send(:remove_const, 'DEFAULT_SETTINGS') if
|
13
|
+
Trepan::CmdProcessor.const_defined?('DEFAULT_SETTINGS')
|
14
|
+
load DEFAULT_RBFILE
|
15
|
+
assert_equal(50, Trepan::CmdProcessor::DEFAULT_SETTINGS[:maxwidth],
|
16
|
+
'Pick up COLUMNS environment')
|
17
|
+
|
18
|
+
Trepan::CmdProcessor.send(:remove_const, 'DEFAULT_SETTINGS')
|
19
|
+
load DEFAULT_RBFILE
|
20
|
+
|
21
|
+
ENV['COLUMNS'] = '0'
|
22
|
+
assert_operator(Trepan::CmdProcessor::DEFAULT_SETTINGS[:maxwidth],
|
23
|
+
:>=, 10,
|
24
|
+
'Change too small COLUMNS environment value')
|
25
|
+
|
26
|
+
Trepan::CmdProcessor.send(:remove_const, 'DEFAULT_SETTINGS')
|
27
|
+
load DEFAULT_RBFILE
|
28
|
+
|
29
|
+
ENV['COLUMNS'] = 'non-numeric-string'
|
30
|
+
assert_operator(Trepan::CmdProcessor::DEFAULT_SETTINGS[:maxwidth],
|
31
|
+
:>=, 10,
|
32
|
+
'Change too small COLUMNS environment value')
|
33
|
+
end
|
34
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rb8-trepanning
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 6
|
10
|
+
version: 0.1.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- R. Bernstein
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2013-03-31 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rbx-require-relative
|
@@ -105,6 +105,7 @@ files:
|
|
105
105
|
- app/util.rb
|
106
106
|
- bin/.gitignore
|
107
107
|
- bin/trepan8
|
108
|
+
- check-filter.rb
|
108
109
|
- data/.gitignore
|
109
110
|
- data/irbrc
|
110
111
|
- data/perldb.bindings
|
@@ -266,6 +267,7 @@ files:
|
|
266
267
|
- processor/command/unalias.rb
|
267
268
|
- processor/command/undisplay.rb
|
268
269
|
- processor/command/up.rb
|
270
|
+
- processor/complete.rb
|
269
271
|
- processor/default.rb
|
270
272
|
- processor/display.rb
|
271
273
|
- processor/eval.rb
|
@@ -306,6 +308,7 @@ files:
|
|
306
308
|
- test/data/stepping-1.9.right
|
307
309
|
- test/data/stepping.cmd
|
308
310
|
- test/data/stepping.right
|
311
|
+
- test/data/trace-mingw.right
|
309
312
|
- test/data/trace.cmd
|
310
313
|
- test/data/trace.right
|
311
314
|
- test/data/trepan8-save.1
|
@@ -362,6 +365,7 @@ files:
|
|
362
365
|
- test/unit/test-io-tcpclient.rb
|
363
366
|
- test/unit/test-io-tcpfns.rb
|
364
367
|
- test/unit/test-io-tcpserver.rb
|
368
|
+
- test/unit/test-proc-default.rb
|
365
369
|
- test/unit/test-proc-eval.rb
|
366
370
|
- test/unit/test-proc-hook.rb
|
367
371
|
- test/unit/test-proc-load_cmds.rb
|
@@ -374,7 +378,7 @@ licenses:
|
|
374
378
|
post_install_message:
|
375
379
|
rdoc_options:
|
376
380
|
- --title
|
377
|
-
- Trepan 0.1.
|
381
|
+
- Trepan 0.1.6 Documentation
|
378
382
|
require_paths:
|
379
383
|
- lib
|
380
384
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -398,7 +402,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
398
402
|
requirements: []
|
399
403
|
|
400
404
|
rubyforge_project:
|
401
|
-
rubygems_version: 1.8.
|
405
|
+
rubygems_version: 1.8.24
|
402
406
|
signing_key:
|
403
407
|
specification_version: 3
|
404
408
|
summary: Ruby Trepanning Debugger using ruby-debug-base
|