debugger 1.2.4 → 1.3.0

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.
Files changed (241) hide show
  1. data/.gitignore +14 -0
  2. data/.travis.yml +0 -1
  3. data/CHANGELOG.md +9 -0
  4. data/Gemfile +3 -0
  5. data/README.md +2 -0
  6. data/Rakefile +3 -55
  7. data/debugger.gemspec +2 -0
  8. data/lib/debugger/version.rb +1 -1
  9. data/lib/ruby-debug-base.rb +3 -1
  10. data/lib/ruby-debug/commands/irb.rb +1 -1
  11. data/lib/ruby-debug/commands/jump.rb +1 -1
  12. data/lib/ruby-debug/commands/method.rb +1 -1
  13. data/lib/ruby-debug/commands/show.rb +1 -1
  14. data/lib/ruby-debug/commands/trace.rb +2 -2
  15. data/lib/ruby-debug/commands/variables.rb +3 -3
  16. data/test/breakpoints_test.rb +365 -0
  17. data/test/conditions_test.rb +76 -0
  18. data/test/continue_test.rb +28 -0
  19. data/test/display_test.rb +141 -0
  20. data/test/edit_test.rb +55 -0
  21. data/test/eval_test.rb +92 -0
  22. data/test/examples/breakpoint1.rb +15 -0
  23. data/test/examples/breakpoint2.rb +7 -0
  24. data/test/examples/conditions.rb +4 -0
  25. data/test/examples/continue.rb +4 -0
  26. data/test/examples/display.rb +5 -0
  27. data/test/examples/edit.rb +3 -0
  28. data/test/examples/edit2.rb +3 -0
  29. data/test/examples/eval.rb +4 -0
  30. data/test/examples/finish.rb +20 -0
  31. data/test/examples/frame.rb +31 -0
  32. data/test/examples/help.rb +2 -0
  33. data/test/examples/info.rb +48 -0
  34. data/test/examples/info2.rb +3 -0
  35. data/test/examples/irb.rb +6 -0
  36. data/test/examples/jump.rb +14 -0
  37. data/test/examples/kill.rb +2 -0
  38. data/test/examples/list.rb +12 -0
  39. data/test/examples/method.rb +15 -0
  40. data/test/examples/post_mortem.rb +19 -0
  41. data/test/examples/quit.rb +2 -0
  42. data/test/examples/reload.rb +6 -0
  43. data/test/examples/restart.rb +6 -0
  44. data/test/examples/save.rb +3 -0
  45. data/test/examples/set.rb +3 -0
  46. data/test/examples/set_annotate.rb +12 -0
  47. data/test/examples/settings.rb +1 -0
  48. data/test/examples/show.rb +2 -0
  49. data/test/examples/source.rb +3 -0
  50. data/test/examples/stepping.rb +21 -0
  51. data/test/examples/thread.rb +32 -0
  52. data/test/examples/tmate.rb +10 -0
  53. data/test/examples/trace.rb +7 -0
  54. data/test/examples/trace_threads.rb +20 -0
  55. data/test/examples/variables.rb +26 -0
  56. data/test/finish_test.rb +48 -0
  57. data/test/frame_test.rb +140 -0
  58. data/test/help_test.rb +50 -0
  59. data/test/info_test.rb +325 -0
  60. data/test/irb_test.rb +81 -0
  61. data/test/jump_test.rb +70 -0
  62. data/test/kill_test.rb +47 -0
  63. data/test/list_test.rb +145 -0
  64. data/test/method_test.rb +70 -0
  65. data/test/post_mortem_test.rb +25 -0
  66. data/test/quit_test.rb +55 -0
  67. data/test/reload_test.rb +43 -0
  68. data/test/restart_test.rb +143 -0
  69. data/test/save_test.rb +92 -0
  70. data/test/set_test.rb +163 -0
  71. data/test/show_test.rb +292 -0
  72. data/test/source_test.rb +44 -0
  73. data/test/stepping_test.rb +118 -0
  74. data/test/support/breakpoint.rb +12 -0
  75. data/test/support/context.rb +14 -0
  76. data/test/support/matchers.rb +67 -0
  77. data/test/support/mocha_extensions.rb +71 -0
  78. data/test/support/processor.rb +7 -0
  79. data/test/support/test_dsl.rb +205 -0
  80. data/test/support/test_interface.rb +66 -0
  81. data/test/test_helper.rb +8 -0
  82. data/test/thread_test.rb +122 -0
  83. data/test/tmate_test.rb +43 -0
  84. data/test/trace_test.rb +154 -0
  85. data/test/variables_test.rb +114 -0
  86. metadata +107 -158
  87. data/test/base/base.rb +0 -71
  88. data/test/base/binding.rb +0 -24
  89. data/test/base/catchpoint.rb +0 -22
  90. data/test/base/load.rb +0 -36
  91. data/test/bp_loop_issue.rb +0 -3
  92. data/test/classes.rb +0 -11
  93. data/test/config.yaml +0 -8
  94. data/test/data/annotate.cmd +0 -29
  95. data/test/data/annotate.right +0 -139
  96. data/test/data/break_bad.cmd +0 -18
  97. data/test/data/break_bad.right +0 -28
  98. data/test/data/break_loop_bug.cmd +0 -5
  99. data/test/data/break_loop_bug.right +0 -15
  100. data/test/data/breakpoints.cmd +0 -38
  101. data/test/data/breakpoints.right +0 -98
  102. data/test/data/catch.cmd +0 -20
  103. data/test/data/catch.right +0 -49
  104. data/test/data/catch2.cmd +0 -19
  105. data/test/data/catch2.right +0 -65
  106. data/test/data/catch3.cmd +0 -11
  107. data/test/data/catch3.right +0 -37
  108. data/test/data/condition.cmd +0 -28
  109. data/test/data/condition.right +0 -65
  110. data/test/data/ctrl.cmd +0 -23
  111. data/test/data/ctrl.right +0 -70
  112. data/test/data/display.cmd +0 -24
  113. data/test/data/display.right +0 -44
  114. data/test/data/dollar-0.right +0 -2
  115. data/test/data/dollar-0a.right +0 -2
  116. data/test/data/dollar-0b.right +0 -2
  117. data/test/data/edit.cmd +0 -12
  118. data/test/data/edit.right +0 -19
  119. data/test/data/emacs_basic.cmd +0 -43
  120. data/test/data/emacs_basic.right +0 -106
  121. data/test/data/enable.cmd +0 -20
  122. data/test/data/enable.right +0 -36
  123. data/test/data/finish.cmd +0 -16
  124. data/test/data/finish.right +0 -31
  125. data/test/data/frame.cmd +0 -26
  126. data/test/data/frame.right +0 -55
  127. data/test/data/help.cmd +0 -20
  128. data/test/data/help.right +0 -21
  129. data/test/data/history.right +0 -7
  130. data/test/data/info-thread.cmd +0 -13
  131. data/test/data/info-thread.right +0 -37
  132. data/test/data/info-var-bug2.cmd +0 -5
  133. data/test/data/info-var-bug2.right +0 -10
  134. data/test/data/info-var.cmd +0 -23
  135. data/test/data/info-var.right +0 -52
  136. data/test/data/info.cmd +0 -21
  137. data/test/data/info.right +0 -65
  138. data/test/data/jump.cmd +0 -16
  139. data/test/data/jump.right +0 -56
  140. data/test/data/jump2.cmd +0 -16
  141. data/test/data/jump2.right +0 -44
  142. data/test/data/linetrace.cmd +0 -6
  143. data/test/data/linetrace.right +0 -23
  144. data/test/data/list.cmd +0 -19
  145. data/test/data/list.right +0 -127
  146. data/test/data/method.cmd +0 -10
  147. data/test/data/method.right +0 -21
  148. data/test/data/methodsig.cmd +0 -10
  149. data/test/data/methodsig.right +0 -20
  150. data/test/data/next.cmd +0 -22
  151. data/test/data/next.right +0 -61
  152. data/test/data/noquit.right +0 -1
  153. data/test/data/output.cmd +0 -6
  154. data/test/data/output.right +0 -31
  155. data/test/data/pm-bug.cmd +0 -7
  156. data/test/data/pm-bug.right +0 -12
  157. data/test/data/post-mortem-next.cmd +0 -8
  158. data/test/data/post-mortem-next.right +0 -14
  159. data/test/data/post-mortem-osx.right +0 -31
  160. data/test/data/post-mortem.cmd +0 -13
  161. data/test/data/post-mortem.right +0 -32
  162. data/test/data/quit.cmd +0 -6
  163. data/test/data/quit.right +0 -0
  164. data/test/data/raise.cmd +0 -11
  165. data/test/data/raise.right +0 -23
  166. data/test/data/save.cmd +0 -34
  167. data/test/data/save.right +0 -59
  168. data/test/data/scope-var.cmd +0 -42
  169. data/test/data/scope-var.right +0 -587
  170. data/test/data/setshow.cmd +0 -56
  171. data/test/data/setshow.right +0 -98
  172. data/test/data/source.cmd +0 -5
  173. data/test/data/source.right +0 -15
  174. data/test/data/stepping.cmd +0 -21
  175. data/test/data/stepping.right +0 -50
  176. data/test/data/test-init-cygwin.right +0 -7
  177. data/test/data/test-init-osx.right +0 -4
  178. data/test/data/test-init.right +0 -5
  179. data/test/data/trace.right +0 -14
  180. data/test/dollar-0.rb +0 -5
  181. data/test/gcd-dbg-nox.rb +0 -30
  182. data/test/gcd-dbg.rb +0 -29
  183. data/test/gcd.rb +0 -18
  184. data/test/helper.rb +0 -142
  185. data/test/info-var-bug.rb +0 -47
  186. data/test/info-var-bug2.rb +0 -2
  187. data/test/jump.rb +0 -14
  188. data/test/jump2.rb +0 -27
  189. data/test/lib/commands/catchpoint_test.rb +0 -28
  190. data/test/lib/commands/unit/regexp.rb +0 -38
  191. data/test/next.rb +0 -18
  192. data/test/null.rb +0 -1
  193. data/test/output.rb +0 -2
  194. data/test/pm-base.rb +0 -17
  195. data/test/pm-bug.rb +0 -3
  196. data/test/pm-catch.rb +0 -12
  197. data/test/pm-catch2.rb +0 -27
  198. data/test/pm-catch3.rb +0 -47
  199. data/test/pm.rb +0 -11
  200. data/test/raise.rb +0 -3
  201. data/test/rdebug-save.1 +0 -7
  202. data/test/runall +0 -12
  203. data/test/scope-var.rb +0 -29
  204. data/test/tdebug.rb +0 -246
  205. data/test/test-annotate.rb +0 -24
  206. data/test/test-break-bad.rb +0 -36
  207. data/test/test-breakpoints.rb +0 -24
  208. data/test/test-catch.rb +0 -24
  209. data/test/test-catch2.rb +0 -24
  210. data/test/test-catch3.rb +0 -24
  211. data/test/test-condition.rb +0 -24
  212. data/test/test-ctrl.rb +0 -51
  213. data/test/test-display.rb +0 -25
  214. data/test/test-dollar-0.rb +0 -39
  215. data/test/test-edit.rb +0 -25
  216. data/test/test-emacs-basic.rb +0 -25
  217. data/test/test-enable.rb +0 -24
  218. data/test/test-finish.rb +0 -33
  219. data/test/test-frame.rb +0 -33
  220. data/test/test-help.rb +0 -54
  221. data/test/test-hist.rb +0 -65
  222. data/test/test-info-thread.rb +0 -31
  223. data/test/test-info-var.rb +0 -46
  224. data/test/test-info.rb +0 -25
  225. data/test/test-init.rb +0 -43
  226. data/test/test-jump.rb +0 -34
  227. data/test/test-list.rb +0 -24
  228. data/test/test-method.rb +0 -33
  229. data/test/test-next.rb +0 -24
  230. data/test/test-output.rb +0 -25
  231. data/test/test-quit.rb +0 -29
  232. data/test/test-raise.rb +0 -24
  233. data/test/test-remote.rb +0 -14
  234. data/test/test-save.rb +0 -30
  235. data/test/test-scope-var.rb +0 -24
  236. data/test/test-setshow.rb +0 -24
  237. data/test/test-source.rb +0 -24
  238. data/test/test-stepping.rb +0 -25
  239. data/test/test-trace.rb +0 -46
  240. data/test/thread1.rb +0 -25
  241. data/test/trunc-call.rb +0 -30
data/test/test-raise.rb DELETED
@@ -1,24 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'test/unit'
3
-
4
- # require 'ruby-debug'; Debugger.start
5
-
6
- # Test Debugger.load handles uncaught exceptions in the debugged program.
7
- class TestRaise < Test::Unit::TestCase
8
-
9
- @@SRC_DIR = File.join(Dir.pwd, File.dirname(__FILE__)) unless
10
- defined?(@@SRC_DIR)
11
-
12
- require File.join(@@SRC_DIR, 'helper')
13
- include TestHelper
14
-
15
- def test_basic
16
- testname='raise'
17
- Dir.chdir(@@SRC_DIR) do
18
- script = File.join('data', testname + '.cmd')
19
- assert_equal(true,
20
- run_debugger(testname,
21
- "--script #{script} -- ./raise.rb"))
22
- end
23
- end
24
- end
data/test/test-remote.rb DELETED
@@ -1,14 +0,0 @@
1
- require 'test/unit'
2
- require 'socket'
3
- require 'ruby-debug'
4
-
5
- # Test Debugger.start_remote, Debugger.cmd_port and Debugger.ctrl_port
6
- class TestRemote < Test::Unit::TestCase
7
- def test_remote
8
- Debugger.start_remote('127.0.0.1', [0, 0])
9
- assert_block { Debugger.ctrl_port > 0 }
10
- assert_block { Debugger.cmd_port > 0 }
11
- assert_nothing_raised { TCPSocket.new('127.0.0.1', Debugger.ctrl_port).close }
12
- assert_nothing_raised { TCPSocket.new('127.0.0.1', Debugger.cmd_port).close }
13
- end
14
- end
data/test/test-save.rb DELETED
@@ -1,30 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'test/unit'
3
-
4
- # require 'ruby-debug'; Debugger.start(:post_mortem =>true)
5
-
6
- class TestSave < Test::Unit::TestCase
7
-
8
- @@SRC_DIR = File.join(Dir.pwd, File.dirname(__FILE__)) unless
9
- defined?(@@SRC_DIR)
10
-
11
- require File.join(@@SRC_DIR, 'helper')
12
- include TestHelper
13
-
14
- # Test initial variables and setting/getting state.
15
- def test_basic
16
- testname='save'
17
- filter = Proc.new{|got_lines, correct_lines|
18
- got_lines.each do |s|
19
- s.sub!(/2 file .*gcd.rb/, '2 file gcd.rb')
20
- end
21
- }
22
- Dir.chdir(@@SRC_DIR) do
23
- script = File.join('data', testname + '.cmd')
24
- assert_equal(true,
25
- run_debugger(testname,
26
- "--script #{script} -- ./gcd.rb 3 5",
27
- nil, filter))
28
- end
29
- end
30
- end
@@ -1,24 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'test/unit'
3
-
4
- # require 'ruby-debug'; Debugger.start
5
-
6
- # Test variable scope
7
- class TestScopeVar < Test::Unit::TestCase
8
-
9
- @@SRC_DIR = File.join(Dir.pwd, File.dirname(__FILE__)) unless
10
- defined?(@@SRC_DIR)
11
-
12
- require File.join(@@SRC_DIR, 'helper')
13
- include TestHelper
14
-
15
- def test_basic
16
- testname='scope-var'
17
- Dir.chdir(@@SRC_DIR) do
18
- script = File.join('data', testname + '.cmd')
19
- assert_equal(true,
20
- run_debugger(testname,
21
- "--script #{script} -- ./#{testname}.rb"))
22
- end
23
- end
24
- end
data/test/test-setshow.rb DELETED
@@ -1,24 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'test/unit'
3
-
4
- # require 'ruby-debug'; Debugger.start
5
-
6
- class TestSetShow < Test::Unit::TestCase
7
-
8
- @@SRC_DIR = File.join(Dir.pwd, File.dirname(__FILE__)) unless
9
- defined?(@@SRC_DIR)
10
-
11
- require File.join(@@SRC_DIR, 'helper')
12
- include TestHelper
13
-
14
- # Test initial variables and setting/getting state.
15
- def test_basic
16
- testname='setshow'
17
- Dir.chdir(@@SRC_DIR) do
18
- script = File.join('data', testname + '.cmd')
19
- assert_equal(true,
20
- run_debugger(testname,
21
- "--script #{script} -- ./gcd.rb 3 5"))
22
- end
23
- end
24
- end
data/test/test-source.rb DELETED
@@ -1,24 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'test/unit'
3
-
4
- # require 'ruby-debug'; Debugger.start
5
-
6
- # Test 'source' command handling.
7
- class TestSource < Test::Unit::TestCase
8
-
9
- @@SRC_DIR = File.join(Dir.pwd, File.dirname(__FILE__)) unless
10
- defined?(@@SRC_DIR)
11
-
12
- require File.join(@@SRC_DIR, 'helper')
13
- include TestHelper
14
-
15
- def test_basic
16
- testname='source'
17
- Dir.chdir(@@SRC_DIR) do
18
- script = File.join('data', testname + '.cmd')
19
- assert_equal(true,
20
- run_debugger(testname,
21
- "--script #{script} -- ./gcd.rb 3 5"))
22
- end
23
- end
24
- end
@@ -1,25 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'test/unit'
3
-
4
- # require 'ruby-debug'; Debugger.start
5
-
6
- # Test that linetracing does something.
7
- class TestStepping < Test::Unit::TestCase
8
-
9
- @@SRC_DIR = File.join(Dir.pwd, File.dirname(__FILE__)) unless
10
- defined?(@@SRC_DIR)
11
-
12
- require File.join(@@SRC_DIR, 'helper')
13
- include TestHelper
14
-
15
- # Test commands in stepping.rb
16
- def test_basic
17
- testname='stepping'
18
- Dir.chdir(@@SRC_DIR) do
19
- script = File.join('data', testname + '.cmd')
20
- assert_equal(true,
21
- run_debugger(testname,
22
- "--script #{script} -- ./gcd.rb 3 5"))
23
- end
24
- end
25
- end
data/test/test-trace.rb DELETED
@@ -1,46 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require 'test/unit'
3
-
4
- # require 'ruby-debug'; Debugger.start
5
-
6
- # Test tracing
7
- class TestTrace < Test::Unit::TestCase
8
-
9
- @@SRC_DIR = File.join(Dir.pwd, File.dirname(__FILE__)) unless
10
- defined?(@@SRC_DIR)
11
-
12
- require File.join(@@SRC_DIR, 'helper')
13
- include TestHelper
14
-
15
- def test_trace_option
16
-
17
- filter = Proc.new{|got_lines, correct_lines|
18
- got_lines.collect!{|l| l !~ /:gcd\.rb:/? l : nil}.compact!
19
- }
20
-
21
- testname='trace'
22
- Dir.chdir(@@SRC_DIR) do
23
- assert_equal(true,
24
- run_debugger(testname,
25
- "-nx --trace ./gcd.rb 3 5", nil, filter))
26
- end
27
- end
28
-
29
- def test_linetrace_command
30
-
31
- filter = Proc.new{|got_lines, correct_lines|
32
- got_lines.collect!{|l| l !~ /:rdbg\.rb:/? l : nil}.compact!
33
- }
34
-
35
- testname='linetrace'
36
- Dir.chdir(@@SRC_DIR) do
37
- script = File.join('data', testname + '.cmd')
38
- assert_equal(true,
39
- run_debugger(testname,
40
- "--script #{script} -- ./gcd.rb 3 5", nil,
41
- filter))
42
-
43
- end
44
- end
45
-
46
- end
data/test/thread1.rb DELETED
@@ -1,25 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Adapted from Programming Ruby 2nd Ed. p. 138
3
-
4
- unless defined?(Debugger)
5
- puts "This program has to be called from the debugger"
6
- exit 1
7
- end
8
-
9
- def fn(count, i)
10
- sleep(rand(0.1))
11
- if 4 == i
12
- debugger
13
- end
14
- Thread.current['mycount'] = count
15
- end
16
-
17
- count = 0
18
- threads = []
19
- 5.times do |i|
20
- threads[i] = Thread.new do
21
- fn(count, i)
22
- count += 1
23
- end
24
- end
25
- threads.each {|t| t.join }
data/test/trunc-call.rb DELETED
@@ -1,30 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # This program is used to test that 'restart' works when we didn't call
3
- # the debugger initially.
4
-
5
- TOP_SRC_DIR = File.join(File.expand_path(File.dirname(__FILE__), "..")) unless
6
- defined?(TOP_SRC_DIR)
7
-
8
- $:.unshift File.join(TOP_SRC_DIR, "ext")
9
- $:.unshift File.join(TOP_SRC_DIR, "lib")
10
- require 'ruby-debug'
11
-
12
- # GCD. We assume positive numbers
13
- def gcd(a, b)
14
- # Make: a <= b
15
- if a > b
16
- a, b = [b, a]
17
- end
18
- if a==3
19
- Debugger.debugger
20
- end
21
-
22
- return nil if a <= 0
23
-
24
- if a == 1 or b-a == 0
25
- return a
26
- end
27
- return gcd(b-a, a)
28
- end
29
-
30
- gcd(13,8)