ruby-debug 0.10.4 → 0.10.5.rc1

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 (129) hide show
  1. data/AUTHORS +5 -0
  2. data/CHANGES +17 -0
  3. data/ChangeLog +6086 -3711
  4. data/README +39 -0
  5. data/Rakefile +67 -82
  6. data/cli/ruby-debug/commands/breakpoints.rb +4 -2
  7. data/cli/ruby-debug/commands/edit.rb +3 -2
  8. data/cli/ruby-debug/commands/info.rb +5 -4
  9. data/cli/ruby-debug/commands/irb.rb +7 -8
  10. data/cli/ruby-debug/commands/list.rb +1 -1
  11. data/cli/ruby-debug/commands/set.rb +7 -1
  12. data/cli/ruby-debug/commands/show.rb +8 -3
  13. data/cli/ruby-debug/processor.rb +10 -4
  14. data/doc/rdebug.1 +1 -1
  15. data/rdbg.rb +1 -1
  16. data/test/base/base.rb +7 -4
  17. data/test/base/binding.rb +3 -12
  18. data/test/base/catchpoint.rb +2 -9
  19. data/test/base/load.rb +18 -14
  20. data/test/base/reload_bug.rb +2 -2
  21. data/test/cli/commands/catchpoint_test.rb +1 -13
  22. data/test/cli/commands/unit/regexp.rb +2 -8
  23. data/test/data/annotate.cmd +2 -2
  24. data/test/data/annotate.right +8 -8
  25. data/test/data/at-exit.cmd +4 -0
  26. data/test/data/at-exit.right +12 -0
  27. data/test/data/break_bad.cmd +3 -5
  28. data/test/data/break_bad.right +4 -6
  29. data/test/data/break_tracelines.cmd +9 -0
  30. data/test/data/break_tracelines.right +17 -0
  31. data/test/data/breakpoints-basename.cmd +2 -0
  32. data/test/data/breakpoints-basename.right +10 -0
  33. data/test/data/breakpoints.cmd +0 -1
  34. data/test/data/breakpoints.right +1 -3
  35. data/test/data/catch.cmd +1 -0
  36. data/test/data/catch.right +2 -0
  37. data/test/data/continue_bad.cmd +4 -0
  38. data/test/data/continue_bad.right +9 -0
  39. data/test/data/ctrl.right +2 -1
  40. data/test/data/dollar-0.right +3 -2
  41. data/test/data/dollar-0a.right +1 -0
  42. data/test/data/dollar-0b.right +1 -0
  43. data/test/data/edit.cmd +1 -1
  44. data/test/data/edit.right +4 -4
  45. data/test/data/emacs_basic.cmd +1 -34
  46. data/test/data/emacs_basic.right +10 -92
  47. data/test/data/frame.cmd +0 -3
  48. data/test/data/frame.right +0 -4
  49. data/test/data/info-file-break.cmd +4 -0
  50. data/test/data/info-file-break.right +11 -0
  51. data/test/data/info-thread.right +4 -4
  52. data/test/data/info-var-bug2.right +2 -2
  53. data/test/data/info.cmd +0 -1
  54. data/test/data/info.right +1 -5
  55. data/test/data/linetrace-jruby.right +23 -0
  56. data/test/data/list.right +13 -13
  57. data/test/data/output.right +4 -4
  58. data/test/data/post-mortem-osx.right +5 -4
  59. data/test/data/quit.right +9 -0
  60. data/test/data/raise-jruby.right +26 -0
  61. data/test/data/raise.right +1 -1
  62. data/test/data/save.cmd +1 -0
  63. data/test/data/save.right +4 -2
  64. data/test/data/stepping.cmd +2 -2
  65. data/test/data/stepping.right +4 -4
  66. data/test/data/test-init.right +2 -2
  67. data/test/data/trace-jruby.right +14 -0
  68. data/test/example/a/example.rb +1 -0
  69. data/test/example/at-exit.rb +3 -0
  70. data/test/example/b/example.rb +1 -0
  71. data/test/{bp_loop_issue.rb → example/bp_loop_issue.rb} +0 -0
  72. data/test/example/breakpoints-basename.rb +2 -0
  73. data/test/{brkpt-class-bug.rb → example/brkpt-class-bug.rb} +0 -0
  74. data/test/{classes.rb → example/classes.rb} +0 -0
  75. data/test/{dollar-0.rb → example/dollar-0.rb} +1 -0
  76. data/test/{except-bug1.rb → example/except-bug1.rb} +0 -0
  77. data/test/file with space.rb b/data/test/example/file with → space.rb +0 -0
  78. data/test/{gcd.rb → example/gcd.rb} +0 -0
  79. data/test/{info-var-bug.rb → example/info-var-bug.rb} +0 -0
  80. data/test/{info-var-bug2.rb → example/info-var-bug2.rb} +0 -0
  81. data/test/{null.rb → example/null.rb} +0 -0
  82. data/test/{output.rb → example/output.rb} +0 -0
  83. data/test/{pm-bug.rb → example/pm-bug.rb} +0 -0
  84. data/test/{pm.rb → example/pm.rb} +0 -0
  85. data/test/{raise.rb → example/raise.rb} +0 -0
  86. data/test/helper.rb +52 -34
  87. data/test/rdebug-save.1 +2 -2
  88. data/test/test-annotate.rb +4 -16
  89. data/test/test-at-exit.rb +13 -0
  90. data/test/test-break-bad.rb +14 -25
  91. data/test/test-breakpoints.rb +13 -14
  92. data/test/test-brkpt-class-bug.rb +3 -16
  93. data/test/test-catch.rb +3 -15
  94. data/test/test-condition.rb +3 -15
  95. data/test/test-display.rb +3 -15
  96. data/test/test-dollar-0.rb +23 -35
  97. data/test/test-edit.rb +4 -16
  98. data/test/test-emacs-basic.rb +4 -17
  99. data/test/test-enable.rb +3 -15
  100. data/test/test-except-bug1.rb +6 -21
  101. data/test/test-file-with-space.rb +3 -15
  102. data/test/test-finish.rb +11 -23
  103. data/test/test-frame.rb +14 -20
  104. data/test/test-hist.rb +6 -10
  105. data/test/test-info-thread.rb +13 -21
  106. data/test/test-info-var.rb +20 -37
  107. data/test/test-info.rb +16 -15
  108. data/test/test-list.rb +3 -14
  109. data/test/test-method.rb +9 -23
  110. data/test/test-output.rb +3 -16
  111. data/test/test-pm.rb +16 -38
  112. data/test/test-quit.rb +3 -20
  113. data/test/test-raise.rb +3 -15
  114. data/test/test-save.rb +12 -21
  115. data/test/test-setshow.rb +3 -15
  116. data/test/test-source.rb +3 -15
  117. data/test/test-stepping.rb +3 -15
  118. data/test/test-trace.rb +22 -45
  119. metadata +199 -159
  120. data/VERSION +0 -3
  121. data/cli/ruby-debug/commands/continue.RB +0 -48
  122. data/cli/ruby-debug/commands/disassemble.RB +0 -38
  123. data/cli/ruby-debug/commands/raise.RB +0 -41
  124. data/cli/ruby-debug/commands/source.RB +0 -44
  125. data/cli/ruby-debug/processor.RB +0 -484
  126. data/runner.sh +0 -7
  127. data/test/except-bug2.rb +0 -7
  128. data/test/scope-test.rb +0 -8
  129. data/test/tvar.rb +0 -3
@@ -12,6 +12,10 @@ module Debugger
12
12
  attr_reader :processor
13
13
  attr_reader :commands
14
14
 
15
+ # optional argument passed passed in callback. For catchpoints it is
16
+ # the catch object. For breakpoints it is the breakpoint object.
17
+ attr_reader :event_arg
18
+
15
19
  # Format _msg_ with gdb-style annotation header.
16
20
  def afmt(msg, newline="\n")
17
21
  "\032\032#{msg}#{newline}"
@@ -147,6 +151,7 @@ module Debugger
147
151
  # This is a callback routine when the debugged program hits a
148
152
  # breakpoint event. For example ruby-debug-base calls this.
149
153
  def at_breakpoint(context, breakpoint)
154
+ @event_arg = breakpoint
150
155
  aprint 'stopped' if Debugger.annotate.to_i > 2
151
156
  n = Debugger.breakpoints.index(breakpoint) + 1
152
157
  file = CommandProcessor.canonic_file(breakpoint.source)
@@ -161,6 +166,7 @@ module Debugger
161
166
  # This is a callback routine when the debugged program hits a
162
167
  # catchpoint. For example ruby-debug-base calls this.
163
168
  def at_catchpoint(context, excpt)
169
+ @event_arg = excpt
164
170
  aprint 'stopped' if Debugger.annotate.to_i > 2
165
171
  file = CommandProcessor.canonic_file(context.frame_file(0))
166
172
  line = context.frame_line(0)
@@ -180,12 +186,12 @@ module Debugger
180
186
  return if defined?(Debugger::RDEBUG_FILE) &&
181
187
  Debugger::RDEBUG_FILE == file # Don't trace ourself
182
188
  @last_file = CommandProcessor.canonic_file(file)
183
- file = CommandProcessor.canonic_file(file)
184
- unless file == @last_file and @last_line == line and
189
+ canonic_file = CommandProcessor.canonic_file(file)
190
+ unless canonic_file == @last_file and @last_line == line and
185
191
  Command.settings[:tracing_plus]
186
192
  print "Tracing(%d):%s:%s %s",
187
- context.thnum, file, line, Debugger.line_at(file, line)
188
- @last_file = file
193
+ context.thnum, canonic_file, line, Debugger.line_at(file, line)
194
+ @last_file = canonic_file
189
195
  @last_line = line
190
196
  end
191
197
  always_run(context, file, line, 2)
data/doc/rdebug.1 CHANGED
@@ -1,4 +1,4 @@
1
- .\" $Id: rdebug.1 516 2007-12-31 05:55:24Z rockyb $
1
+ .\" $Id$
2
2
  .TH rdebug 1
3
3
  .SH NAME
4
4
  rdebug \- Fast Ruby debugger
data/rdbg.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  #!/usr/bin/env ruby
3
- # $Id: rdbg.rb 756 2008-03-13 02:15:04Z rockyb $
3
+ # $Id$
4
4
 
5
5
  # Use this to run rdebug without installing it. We assume that the
6
6
  # library directories are stored at the same level the directory
data/test/base/base.rb CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
- require 'test/unit'
2
+ require File.expand_path("../../helper", __FILE__)
3
3
 
4
4
  # Some tests of Debugger module in C extension ruby_debug
5
5
  class TestRubyDebug < Test::Unit::TestCase
6
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'ext')
7
- require 'ruby_debug'
8
- $:.shift
6
+ def test_version
7
+ assert(defined?(Debugger::VERSION))
8
+ end
9
9
 
10
10
  # test current_context
11
11
  def test_current_context
@@ -26,6 +26,7 @@ class TestRubyDebug < Test::Unit::TestCase
26
26
  assert_equal(1, Debugger.current_context.stack_size)
27
27
  assert_equal(TestRubyDebug, Debugger.current_context.frame_class)
28
28
  assert_equal(false, Debugger.current_context.dead?, 'Not dead yet!')
29
+ ensure
29
30
  Debugger.stop
30
31
  assert_equal(false, Debugger.started?,
31
32
  'Debugger should no longer be started.')
@@ -47,6 +48,7 @@ class TestRubyDebug < Test::Unit::TestCase
47
48
  'There should only be one context.')
48
49
  assert_equal(Array, a.class,
49
50
  'Context should be an array.')
51
+ ensure
50
52
  Debugger.stop
51
53
  assert_equal(false, Debugger.started?,
52
54
  'debugger should no longer be started.')
@@ -68,6 +70,7 @@ class TestRubyDebug < Test::Unit::TestCase
68
70
  Debugger.remove_breakpoint(1)
69
71
  assert_equal(0, Debugger.breakpoints.size,
70
72
  'There should no longer be any breakpoints set.')
73
+ ensure
71
74
  Debugger.stop
72
75
  end
73
76
  end
data/test/base/binding.rb CHANGED
@@ -1,18 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
-
3
- require 'test/unit'
2
+ require File.expand_path("../../helper", __FILE__)
4
3
 
5
4
  # Test binding_n command
6
5
  class TestBinding < Test::Unit::TestCase
7
-
8
- SRC_DIR = File.expand_path(File.dirname(__FILE__)) unless
9
- defined?(SRC_DIR)
10
- %w(ext lib).each do |dir|
11
- $:.unshift File.join(SRC_DIR, '..', '..', dir)
12
- end
13
- require File.join(SRC_DIR, '..', '..', 'lib', 'ruby-debug-base')
14
- $:.shift; $:.shift
15
-
16
6
  def test_basic
17
7
  def inside_fn
18
8
  s = 'some other string'
@@ -24,8 +14,9 @@ class TestBinding < Test::Unit::TestCase
24
14
  Debugger.start
25
15
  b = Kernel::binding_n(0)
26
16
  y = eval('s', b)
27
- assert_equal(y, s)
17
+ assert_equal(s, y)
28
18
  inside_fn
19
+ ensure
29
20
  Debugger.stop
30
21
  end
31
22
  end
@@ -1,15 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
- require 'test/unit'
2
+ require File.expand_path("../../helper", __FILE__)
3
3
 
4
4
  # Test catchpoint in C ruby_debug extension.
5
5
 
6
6
  class TestRubyDebugCatchpoint < Test::Unit::TestCase
7
-
8
- $:.unshift File.join(File.dirname(__FILE__), '..', '..', 'ext')
9
- require 'ruby_debug'
10
- $:.shift
11
-
12
- # test current_context
13
7
  def test_catchpoints
14
8
  assert_raise(RuntimeError) {Debugger.catchpoints}
15
9
  Debugger.start_
@@ -19,8 +13,7 @@ class TestRubyDebugCatchpoint < Test::Unit::TestCase
19
13
  Debugger.add_catchpoint('RuntimeError')
20
14
  assert_equal(['RuntimeError', 'ZeroDivisionError'],
21
15
  Debugger.catchpoints.keys.sort)
16
+ ensure
22
17
  Debugger.stop
23
18
  end
24
-
25
19
  end
26
-
data/test/base/load.rb CHANGED
@@ -1,22 +1,14 @@
1
1
  #!/usr/bin/env ruby
2
- require 'test/unit'
2
+ require File.expand_path("../../helper", __FILE__)
3
3
 
4
4
  # Test of Debugger.debug_load in C extension ruby_debug.so
5
5
  class TestDebugLoad < Test::Unit::TestCase
6
-
7
- @@src_dir = File.dirname(__FILE__)
8
- $:.unshift File.join(@@src_dir, '..', '..', 'ext')
9
- require 'ruby_debug'
10
- $:.shift
11
-
12
- class << self
6
+ class << self
13
7
  def at_line(file, line)
14
8
  @@at_line = [File.basename(file), line]
15
9
  end
16
10
  end
17
11
 
18
- Debugger::PROG_SCRIPT = File.join(@@src_dir, '..', 'gcd.rb')
19
-
20
12
  class Debugger::Context
21
13
  def at_line(file, line)
22
14
  TestDebugLoad::at_line(file, line)
@@ -24,17 +16,29 @@ class TestDebugLoad < Test::Unit::TestCase
24
16
  end
25
17
 
26
18
  def test_debug_load
19
+ src_dir = File.dirname(__FILE__)
20
+ prog_script = File.join(src_dir, '..', 'example', 'gcd.rb')
21
+
27
22
  # Without stopping
28
- bt = Debugger.debug_load(Debugger::PROG_SCRIPT, false)
23
+ bt = Debugger.debug_load(prog_script, false)
29
24
  assert_equal(nil, bt)
25
+ assert(Debugger.started?)
26
+ Debugger.stop
27
+
30
28
  # With stopping
31
- bt = Debugger.debug_load(Debugger::PROG_SCRIPT, true)
29
+ bt = Debugger.debug_load(prog_script, true)
32
30
  assert_equal(nil, bt)
33
31
  assert_equal(['gcd.rb', 4], @@at_line)
32
+ assert(Debugger.started?)
33
+ Debugger.stop
34
34
 
35
35
  # Test that we get a proper backtrace on a script that raises 'abc'
36
- prog_script = File.join(@@src_dir, '..', 'raise.rb')
36
+ prog_script = File.join(src_dir, '..', 'example', 'raise.rb')
37
37
  bt = Debugger.debug_load(prog_script, false)
38
- assert_equal(bt.to_s, 'abc')
38
+ assert_equal('abc', bt.to_s)
39
+ assert(Debugger.started?)
40
+ Debugger.stop
41
+ ensure
42
+ Debugger.stop if Debugger.started?
39
43
  end
40
44
  end
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
- require 'test/unit'
2
+ require File.expand_path("../../helper", __FILE__)
3
+
3
4
  class TestReloadBug < Test::Unit::TestCase
4
5
  def test_reload_bug
5
- top_srcdir = File.join(File.dirname(__FILE__), '..', '..')
6
6
  assert_equal({}, Debugger::source_reload)
7
7
  end
8
8
  end
@@ -1,18 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
-
3
- require 'test/unit'
2
+ require File.expand_path("../../../helper", __FILE__)
4
3
 
5
4
  class TestCatchCommand < Test::Unit::TestCase
6
-
7
- base_dir = File.expand_path(File.join(File.dirname(__FILE__),
8
- '..', '..', '..'))
9
-
10
- %w(ext lib cli).each do |dir|
11
- $: << File.join(base_dir, dir)
12
- end
13
-
14
- require File.join(base_dir, 'cli', 'ruby-debug')
15
-
16
5
  class MockState
17
6
  attr_accessor :message
18
7
  def context; end
@@ -32,5 +21,4 @@ class TestCatchCommand < Test::Unit::TestCase
32
21
  end
33
22
  assert_equal(nil, state.message)
34
23
  end
35
-
36
24
  end
@@ -1,12 +1,7 @@
1
- require 'test/unit'
2
-
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path("../../../../helper", __FILE__)
3
3
 
4
4
  class TestCommandREs < Test::Unit::TestCase
5
- base_dir=File.expand_path(File.join(File.dirname(__FILE__),
6
- '..', '..', '..', '..',
7
- 'cli', 'ruby-debug'))
8
- require File.join(base_dir, 'command')
9
- require File.join(base_dir, 'commands', 'frame')
10
5
  include Debugger
11
6
 
12
7
  def test_quit
@@ -39,4 +34,3 @@ class TestCommandREs < Test::Unit::TestCase
39
34
  assert_equal(nil, c.regexp.match('dow'))
40
35
  end
41
36
  end
42
-
@@ -3,7 +3,7 @@
3
3
  # ********************************************************
4
4
  set debuggertesting on
5
5
  set callstyle last
6
- set force off
6
+ set different off
7
7
  set annotate 3
8
8
  # Get into gcd
9
9
  step 2
@@ -21,7 +21,7 @@ b 12
21
21
  display 1+2
22
22
  # undisplay should trigger display annotation
23
23
  undisplay 1
24
- step
24
+ step+
25
25
  # Test error annotations
26
26
  up 10
27
27
  frame 100
@@ -7,8 +7,8 @@ def gcd(a, b)
7
7
  Currently testing the debugger is on.
8
8
  # set callstyle last
9
9
  Frame call-display style is last.
10
- # set force off
11
- force-stepping is off.
10
+ # set different off
11
+ different-line stepping is off.
12
12
  # set annotate 3
13
13
  Annotation level is 3
14
14
  # # Get into gcd
@@ -71,7 +71,7 @@ Num Enb What
71
71
  # undisplay 1
72
72
  display
73
73
  
74
- # step
74
+ # step+
75
75
  display
76
76
  
77
77
  starting
@@ -83,7 +83,7 @@ Num Enb What
83
83
  display
84
84
  
85
85
  stack
86
- --> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:6
86
+ --> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:10
87
87
  #1 at line gcd.rb:18
88
88
  
89
89
  variables
@@ -91,8 +91,8 @@ a = 3
91
91
  b = 5
92
92
  self = main
93
93
  
94
- source gcd.rb:6
95
- if a > b
94
+ source gcd.rb:10
95
+ return nil if a <= 0
96
96
  # # Test error annotations
97
97
  # up 10
98
98
  error-begin
@@ -101,7 +101,7 @@ Adjusting would put us beyond the oldest (initial) frame.
101
101
  display
102
102
  
103
103
  stack
104
- --> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:6
104
+ --> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:10
105
105
  #1 at line gcd.rb:18
106
106
  
107
107
  variables
@@ -116,7 +116,7 @@ Adjusting would put us beyond the oldest (initial) frame.
116
116
  display
117
117
  
118
118
  stack
119
- --> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:6
119
+ --> #0 Object.gcd(a#Fixnum, b#Fixnum) at line gcd.rb:10
120
120
  #1 at line gcd.rb:18
121
121
  
122
122
  variables
@@ -0,0 +1,4 @@
1
+ set debuggertesting on
2
+ break 2
3
+ c
4
+ c
@@ -0,0 +1,12 @@
1
+ at-exit.rb:1
2
+ at_exit do
3
+ # set debuggertesting on
4
+ Currently testing the debugger is on.
5
+ # break 2
6
+ Breakpoint 1 file at-exit.rb, line 2
7
+ # c
8
+ Breakpoint 1 at at-exit.rb:2
9
+ at-exit.rb:2
10
+ puts "Hello world!"
11
+ # c
12
+ Hello world!
@@ -5,14 +5,12 @@
5
5
  set debuggertesting on
6
6
  set callstyle last
7
7
  set autoeval off
8
+ set basename on
8
9
  # There aren't 100 lines in gcd.rb.
9
10
  break 100
10
- break gcd.rb:100
11
- # Line one isn't a valid stopping point.
12
- # It is a comment.
13
- break gcd.rb:1
11
+ break example/gcd.rb:100
14
12
  # This line is okay
15
- break gcd.rb:4
13
+ break example/gcd.rb:4
16
14
  # No class Foo.
17
15
  break Foo.bar
18
16
  q
@@ -10,17 +10,15 @@ Currently testing the debugger is on.
10
10
  Frame call-display style is last.
11
11
  # set autoeval off
12
12
  autoeval is off.
13
+ # set basename on
14
+ basename is on.
13
15
  # # There aren't 100 lines in gcd.rb.
14
16
  # break 100
15
17
  *** There are only 18 lines in file "gcd.rb".
16
- # break gcd.rb:100
18
+ # break example/gcd.rb:100
17
19
  *** There are only 18 lines in file "gcd.rb".
18
- # # Line one isn't a valid stopping point.
19
- # # It is a comment.
20
- # break gcd.rb:1
21
- *** Line 1 is not a stopping point in file "gcd.rb".
22
20
  # # This line is okay
23
- # break gcd.rb:4
21
+ # break example/gcd.rb:4
24
22
  Breakpoint 1 file gcd.rb, line 4
25
23
  # # No class Foo.
26
24
  # break Foo.bar
@@ -0,0 +1,9 @@
1
+ set debuggertesting on
2
+ set callstyle last
3
+ set autoeval off
4
+ set basename on
5
+ # Line one isn't a valid stopping point.
6
+ # It is a comment.
7
+ break example/gcd.rb:1
8
+ break 11
9
+ q
@@ -0,0 +1,17 @@
1
+ gcd.rb:4
2
+ def gcd(a, b)
3
+ # set debuggertesting on
4
+ Currently testing the debugger is on.
5
+ # set callstyle last
6
+ Frame call-display style is last.
7
+ # set autoeval off
8
+ autoeval is off.
9
+ # set basename on
10
+ basename is on.
11
+ # # Line one isn't a valid stopping point.
12
+ # # It is a comment.
13
+ # break example/gcd.rb:1
14
+ *** Line 1 is not a stopping point in file "gcd.rb".
15
+ # break 11
16
+ *** Line 11 is not a stopping point in file "gcd.rb".
17
+ # q
@@ -0,0 +1,2 @@
1
+ break example/b/example.rb:1
2
+ c