trepanning 0.0.6 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. data/ChangeLog +214 -0
  2. data/NEWS +12 -0
  3. data/README.textile +1 -7
  4. data/Rakefile +13 -0
  5. data/app/default.rb +5 -4
  6. data/app/disassemble.rb +25 -3
  7. data/app/run.rb +0 -18
  8. data/bin/trepan +4 -6
  9. data/data/irbrc +3 -17
  10. data/io/base_io.rb +3 -1
  11. data/io/null_output.rb +41 -0
  12. data/lib/trepanning.rb +10 -13
  13. data/processor/command/backtrace.rb +7 -6
  14. data/processor/command/base/subcmd.rb +4 -0
  15. data/processor/command/base/submgr.rb +1 -1
  16. data/processor/command/base/subsubmgr.rb +1 -1
  17. data/processor/command/break.rb +12 -4
  18. data/processor/command/continue.rb +2 -2
  19. data/processor/command/delete.rb +1 -1
  20. data/processor/command/disable.rb +1 -1
  21. data/processor/command/disassemble.rb +1 -1
  22. data/processor/command/finish.rb +3 -3
  23. data/processor/command/info_subcmd/iseq.rb +9 -0
  24. data/processor/command/info_subcmd/registers_subcmd/dfp.rb +7 -16
  25. data/processor/command/info_subcmd/registers_subcmd/lfp.rb +5 -17
  26. data/processor/command/info_subcmd/registers_subcmd/pc.rb +6 -19
  27. data/processor/command/info_subcmd/registers_subcmd/sp.rb +14 -24
  28. data/processor/command/list.rb +34 -19
  29. data/processor/command/reload.rb +1 -1
  30. data/processor/command/restart.rb +8 -9
  31. data/processor/command/set_subcmd/auto.rb +1 -2
  32. data/processor/command/set_subcmd/auto_subcmd/eval.rb +6 -19
  33. data/processor/command/set_subcmd/auto_subcmd/irb.rb +7 -23
  34. data/processor/command/set_subcmd/auto_subcmd/list.rb +5 -22
  35. data/processor/command/set_subcmd/basename.rb +6 -20
  36. data/processor/command/set_subcmd/debug.rb +1 -1
  37. data/processor/command/set_subcmd/debug_subcmd/dbgr.rb +9 -22
  38. data/processor/command/set_subcmd/debug_subcmd/except.rb +8 -20
  39. data/processor/command/set_subcmd/debug_subcmd/macro.rb +7 -19
  40. data/processor/command/set_subcmd/debug_subcmd/skip.rb +5 -18
  41. data/processor/command/set_subcmd/debug_subcmd/stack.rb +5 -18
  42. data/processor/command/set_subcmd/hidelevel.rb +60 -0
  43. data/processor/command/set_subcmd/max.rb +1 -1
  44. data/processor/command/set_subcmd/max_subcmd/list.rb +12 -23
  45. data/processor/command/set_subcmd/max_subcmd/stack.rb +8 -31
  46. data/processor/command/set_subcmd/substitute.rb +1 -1
  47. data/processor/command/set_subcmd/substitute_subcmd/eval.rb +1 -1
  48. data/processor/command/set_subcmd/substitute_subcmd/path.rb +1 -1
  49. data/processor/command/set_subcmd/substitute_subcmd/string.rb +6 -18
  50. data/processor/command/set_subcmd/timer.rb +1 -1
  51. data/processor/command/set_subcmd/trace.rb +1 -1
  52. data/processor/command/set_subcmd/trace_subcmd/buffer.rb +1 -1
  53. data/processor/command/set_subcmd/trace_subcmd/print.rb +5 -21
  54. data/processor/command/set_subcmd/trace_subcmd/var.rb +1 -1
  55. data/processor/command/show_subcmd/args.rb +9 -27
  56. data/processor/command/show_subcmd/auto_subcmd/eval.rb +3 -15
  57. data/processor/command/show_subcmd/auto_subcmd/irb.rb +3 -15
  58. data/processor/command/show_subcmd/auto_subcmd/list.rb +3 -18
  59. data/processor/command/show_subcmd/basename.rb +3 -1
  60. data/processor/command/show_subcmd/hidelevel.rb +41 -0
  61. data/processor/command/show_subcmd/max.rb +1 -1
  62. data/processor/command/show_subcmd/trace_subcmd/buffer.rb +1 -1
  63. data/processor/command/show_subcmd/trace_subcmd/print.rb +1 -1
  64. data/processor/command/source.rb +6 -5
  65. data/processor/command/undisplay.rb +0 -1
  66. data/processor/default.rb +6 -2
  67. data/processor/frame.rb +2 -21
  68. data/processor/location.rb +44 -18
  69. data/processor/main.rb +0 -11
  70. data/processor/mock.rb +25 -0
  71. data/processor/validate.rb +34 -18
  72. data/test/functional/fn_helper.rb +14 -4
  73. data/test/functional/test-break.rb +35 -73
  74. data/test/functional/test-condition.rb +9 -10
  75. data/test/functional/test-delete.rb +5 -3
  76. data/test/unit/test-app-disassemble.rb +15 -3
  77. data/test/unit/test-app-run.rb +0 -4
  78. data/test/unit/test-cmd-break.rb +3 -0
  79. metadata +15 -11
data/ChangeLog CHANGED
@@ -1,3 +1,217 @@
1
+ 2010-12-10 rocky <rockyb@rubyforge.org>
2
+
3
+ * .gemspec, lib/trepanning.rb: Giant Madagascar Day release
4
+
5
+ 2010-12-05 rocky <rockyb@rubyforge.org>
6
+
7
+ * processor/location.rb, test/functional/fn_helper.rb: Add IP in
8
+ source location line.
9
+
10
+ 2010-12-05 rocky <rockyb@rubyforge.org>
11
+
12
+ * processor/command/show_subcmd/basename.rb: Add missing contstants
13
+ and DRY standalong code.
14
+
15
+ 2010-12-05 rocky <rockyb@rubyforge.org>
16
+
17
+ * processor/command/base/subcmd.rb,
18
+ processor/command/set_subcmd/basename.rb,
19
+ processor/command/set_subcmd/hidelevel.rb,
20
+ processor/command/set_subcmd/max_subcmd/list.rb,
21
+ processor/command/set_subcmd/max_subcmd/stack.rb: DRY standalone
22
+ code a little more via subcmd#prefix.
23
+
24
+ 2010-12-04 rocky <rockyb@rubyforge.org>
25
+
26
+ * app/disassemble.rb, processor/command/break.rb,
27
+ processor/location.rb, processor/main.rb, processor/validate.rb,
28
+ test/unit/test-cmd-break.rb: Can handle: break METHOD NUM now.
29
+
30
+ 2010-12-04 rocky <rockyb@rubyforge.org>
31
+
32
+ * app/disassemble.rb, processor/command/backtrace.rb,
33
+ processor/command/break.rb, processor/command/disassemble.rb,
34
+ processor/location.rb, test/unit/test-app-disassemble.rb: If we
35
+ can't find source text, show disassembly output. Idea from rubinius.
36
+ Attempt to shorten disassembly output if larger than max width.
37
+
38
+ 2010-12-01 rocky <rockyb@rubyforge.org>
39
+
40
+ * lib/trepanning.rb: block.call works if trace stops ignoring
41
+ blocks.
42
+
43
+ 2010-11-30 rocky <rockyb@rubyforge.org>
44
+
45
+ * lib/trepanning.rb: Add Kernel.debugger to be compatible with
46
+ ruby-debug.
47
+
48
+ 2010-11-28 rocky <rockyb@rubyforge.org>
49
+
50
+ * lib/trepanning.rb, processor/command/set_subcmd/basename.rb,
51
+ processor/command/set_subcmd/hidelevel.rb, processor/mock.rb:
52
+ Hidelevel default was wrong. Changing settings changes frame adjust
53
+ values immediately. Start to DRY some stand-alone subcommands.
54
+
55
+ 2010-11-28 rocky <rockyb@rubyforge.org>
56
+
57
+ * lib/trepanning.rb, processor/command/base/submgr.rb,
58
+ processor/command/base/subsubmgr.rb, processor/command/delete.rb,
59
+ processor/command/disable.rb,
60
+ processor/command/info_subcmd/registers_subcmd/pc.rb,
61
+ processor/command/info_subcmd/registers_subcmd/sp.rb,
62
+ processor/command/reload.rb, processor/command/set_subcmd/auto.rb,
63
+ processor/command/set_subcmd/basename.rb,
64
+ processor/command/set_subcmd/debug.rb,
65
+ processor/command/set_subcmd/max.rb,
66
+ processor/command/set_subcmd/max_subcmd/list.rb,
67
+ processor/command/set_subcmd/max_subcmd/stack.rb,
68
+ processor/command/set_subcmd/substitute.rb,
69
+ processor/command/set_subcmd/substitute_subcmd/eval.rb,
70
+ processor/command/set_subcmd/substitute_subcmd/path.rb,
71
+ processor/command/set_subcmd/timer.rb,
72
+ processor/command/set_subcmd/trace.rb,
73
+ processor/command/set_subcmd/trace_subcmd/buffer.rb,
74
+ processor/command/set_subcmd/trace_subcmd/var.rb,
75
+ processor/command/show_subcmd/hidelevel.rb,
76
+ processor/command/show_subcmd/max.rb,
77
+ processor/command/show_subcmd/trace_subcmd/buffer.rb,
78
+ processor/command/show_subcmd/trace_subcmd/print.rb,
79
+ processor/command/undisplay.rb, processor/mock.rb,
80
+ processor/validate.rb: DRY code more. Remove set_restart => true
81
+
82
+ 2010-11-28 rocky <rockyb@rubyforge.org>
83
+
84
+ * processor/command/info_subcmd/iseq.rb: Show instruction sequence
85
+ options and source string.
86
+
87
+ 2010-11-28 rocky <rockyb@rubyforge.org>
88
+
89
+ Merge branch 'master' of github.com:rocky/rb-trepanning
90
+
91
+ 2010-11-28 rocky <rockyb@rubyforge.org>
92
+
93
+ * Rakefile, processor/command/info_subcmd/registers_subcmd/dfp.rb,
94
+ processor/command/info_subcmd/registers_subcmd/lfp.rb,
95
+ processor/command/info_subcmd/registers_subcmd/sp.rb,
96
+ processor/command/list.rb,
97
+ processor/command/set_subcmd/auto_subcmd/eval.rb,
98
+ processor/command/set_subcmd/auto_subcmd/irb.rb,
99
+ processor/command/set_subcmd/auto_subcmd/list.rb,
100
+ processor/command/set_subcmd/debug_subcmd/dbgr.rb,
101
+ processor/command/set_subcmd/debug_subcmd/except.rb,
102
+ processor/command/set_subcmd/debug_subcmd/macro.rb,
103
+ processor/command/set_subcmd/debug_subcmd/skip.rb,
104
+ processor/command/set_subcmd/debug_subcmd/stack.rb,
105
+ processor/command/set_subcmd/substitute_subcmd/string.rb,
106
+ processor/command/set_subcmd/trace_subcmd/print.rb,
107
+ processor/command/show_subcmd/auto_subcmd/eval.rb,
108
+ processor/command/show_subcmd/auto_subcmd/irb.rb,
109
+ processor/command/show_subcmd/auto_subcmd/list.rb,
110
+ processor/mock.rb: Start to DRY standalone-code.
111
+
112
+ 2010-11-26 rocky <rockyb@rubyforge.org>
113
+
114
+ * processor/frame.rb, processor/location.rb: Lean more on linecache
115
+ for eval string iseq remapping. Still more work is needed.
116
+
117
+ 2010-11-25 rvm <rocky@gnu.org>
118
+
119
+ * .gemspec, lib/trepanning.rb: version name .git -> .dev. Allow Ruby
120
+ version 1.9.2frame
121
+
122
+ 2010-11-13 rocky <rockyb@rubyforge.org>
123
+
124
+ Merge branch 'master' of github.com:rocky/rb-trepanning
125
+
126
+ 2010-11-13 rocky <rockyb@rubyforge.org>
127
+
128
+ * io/base_io.rb, io/null_output.rb, processor/command/continue.rb,
129
+ processor/command/set_subcmd/auto.rb, processor/command/source.rb,
130
+ processor/default.rb, processor/frame.rb, processor/location.rb,
131
+ processor/validate.rb: "source -q" silences all prompt and debugger
132
+ messages now. Fix bugs in output.eof auto.rb: remove
133
+ no-longer-needed assignment
134
+
135
+ 2010-11-12 rocky <rockyb@rubyforge.org>
136
+
137
+ * README.textile: Don't need set_restart any more.
138
+
139
+ 2010-11-12 rocky <rockyb@rubyforge.org>
140
+
141
+ * .gemspec, app/default.rb, app/run.rb, bin/trepan,
142
+ processor/command/restart.rb,
143
+ processor/command/show_subcmd/args.rb, processor/location.rb,
144
+ test/unit/test-app-run.rb: Greatly simplify restart code and is more
145
+ reliable -- via new patch to 1.9.2. Thanks to Evan Phoenix for
146
+ suggesting and doing in Rubinius. .gemspec: need to make sure we
147
+ have a later Ruby 1.9.2 patch
148
+
149
+ 2010-11-09 rocky <rockyb@rubyforge.org>
150
+
151
+ * data/irbrc: Monkey patch irb more properly.
152
+
153
+ 2010-11-09 rocky <rockyb@rubyforge.org>
154
+
155
+ * processor/command/finish.rb, processor/command/list.rb,
156
+ processor/frame.rb: Fix "list . NUM". finish.rb: fix doc string
157
+
158
+ 2010-11-08 rocky <rockyb@rubyforge.org>
159
+
160
+ Merge branch 'master' of github.com:rocky/rb-trepanning
161
+
162
+ 2010-11-08 rocky <rockyb@rubyforge.org>
163
+
164
+ * test/functional/fn_helper.rb, test/functional/test-break.rb,
165
+ test/functional/test-condition.rb, test/functional/test-delete.rb:
166
+ list.rb: handle "list . count" and "list start end". Sync with
167
+ rbx-trepanning.
168
+
169
+ 2010-11-04 rocky <rockyb@rubyforge.org>
170
+
171
+ * lib/trepanning.rb, processor/command/backtrace.rb,
172
+ processor/command/set_subcmd/hidelevel.rb,
173
+ processor/command/show_subcmd/hidelevel.rb, processor/default.rb:
174
+ Replace "set/show debugstack" with more general "set/show hidestack"
175
+
176
+
177
+ 2010-10-27 rocky <rockyb@rubyforge.org>
178
+
179
+ * NEWS, lib/trepanning.rb: Some small omissions.
180
+
181
+ 2010-10-27 rocky <rockyb@rubyforge.org>
182
+
183
+ * .gemspec, lib/trepanning.rb: Dependency on threadframe should be
184
+ 0.33 or greater.
185
+
186
+ 2010-10-27 rocky <rockyb@rubyforge.org>
187
+
188
+ * lib/trepanning.rb: Update version number for release.
189
+
190
+ 2010-10-27 rocky <rockyb@rubyforge.org>
191
+
192
+ * .gemspec, NEWS, Rakefile: Get ready for release.
193
+
194
+ 2010-10-21 rocky <rockyb@rubyforge.org>
195
+
196
+ Merge branch 'master' of github.com:rocky/rb-trepanning
197
+
198
+ 2010-10-20 rocky <rockyb@rubyforge.org>
199
+
200
+ * processor/validate.rb: Comment typo.
201
+
202
+ 2010-10-20 rocky <rockyb@rubyforge.org>
203
+
204
+ * app/util.rb, test/unit/test-app-util.rb: Elision of long strings
205
+ is now in middle of string rather than the end.
206
+
207
+ 2010-10-19 rocky <rockyb@rubyforge.org>
208
+
209
+ * processor/frame.rb: Some more RDoc appeasement.
210
+
211
+ 2010-10-19 rocky <rockyb@rubyforge.org>
212
+
213
+ * ChangeLog, NEWS, processor/command/finish.rb: What's up
214
+
1
215
  2010-10-19 rocky <rockyb@rubyforge.org>
2
216
 
3
217
  Merge branch 'master' of github.com:rocky/rb-trepanning
data/NEWS CHANGED
@@ -1,3 +1,15 @@
1
+ Dec 10, 2010 (0.0.8) Phel. Mad release
2
+ * Show IP in source location
3
+ * Can handle: break *method" *pos* now
4
+ * Add Kernel#debugger to be compatible with ruby-debug
5
+ * debugger { code here } work better
6
+ * source -q silences all prompt and debugger messages
7
+ * Show instruction-sequence options on demand
8
+ * Nuke debugger set_restart => true. We now have a more reliable way to
9
+ do this. Rubinius showing the way here.
10
+ * Improvements to the "list" command.
11
+ * Get/show eval string using rb-threadframe patch
12
+
1
13
  Oct 27, 2010 (0.0.6)
2
14
 
3
15
  * Add gdb directory command - this time for sure!
data/README.textile CHANGED
@@ -32,15 +32,9 @@ bc. require 'trepan'
32
32
  Trepan.debug # Don't stop here...
33
33
  work # but stop here.
34
34
 
35
- or if you haven't mucked around with $0 and ARGV, you might try:
36
-
37
- bc. Trepan.debug(:set_restart=>true)
38
-
39
- which informs the debugger on how to restart the program (via the restart command) using the values of ARGV and $0 at the time Trepan.debug was called.
40
-
41
35
  The above is really shorthand for something like:
42
36
 
43
- bc. $trepan = Trepan.new(:set_restart=>true)
37
+ bc. $trepan = Trepan.new
44
38
  $trepan.debugger
45
39
 
46
40
  The global variable $trepan set holds debugger settings, such as "autolist" or "autoeval" settings and breakpoint information.
data/Rakefile CHANGED
@@ -43,6 +43,13 @@ require 'rbconfig'
43
43
  RUBY_PATH = File.join(RbConfig::CONFIG['bindir'],
44
44
  RbConfig::CONFIG['RUBY_INSTALL_NAME'])
45
45
 
46
+ def run_standalone_ruby_files(list)
47
+ puts '*' * 40
48
+ list.each do |ruby_file|
49
+ system(RUBY_PATH, ruby_file)
50
+ end
51
+ end
52
+
46
53
  def run_standalone_ruby_file(directory)
47
54
  puts ('*' * 10) + ' ' + directory + ' ' + ('*' * 10)
48
55
  Dir.chdir(directory) do
@@ -102,6 +109,12 @@ task :'check:commands' do
102
109
  run_standalone_ruby_file(File.join(%W(#{ROOT_DIR} processor command)))
103
110
  end
104
111
 
112
+ desc "Run each of the sub-sub commands in standalone mode."
113
+ task :'check:subsub:commands' do
114
+ subsub_files = FileList["#{ROOT_DIR}/processor/command/*_subcmd/*_subcmd/*.rb"]
115
+ run_standalone_ruby_files(subsub_files)
116
+ end
117
+
105
118
  desc "Run each processor Ruby file in standalone mode."
106
119
  task :'check:lib' do
107
120
  run_standalone_ruby_file(File.join(%W(#{ROOT_DIR} lib)))
data/app/default.rb CHANGED
@@ -12,16 +12,17 @@ module Trepanning
12
12
  :cmdproc_opts => {}, # Default Trepan::CmdProcessor settings
13
13
  :core_opts => {}, # Default Trepan::Core settings
14
14
  :delete_restore => true, # Delete restore profile after reading?
15
- :initial_dir => nil, # Current directory run when "restart" is given
16
- :nx => false, # Don't run user startup file (e.g. .rbdbgrc)
17
- :restart_argv => [], # Command run when "restart" is given
15
+ :initial_dir => nil, # If --cd option was given, we save it here.
16
+ :nx => false, # Don't run user startup file (e.g. .trepanrc)
17
+ :restart_argv => RubyVM::OS_ARGV,
18
+ # Command run when "restart" is given.
18
19
  :restore_profile => nil # Profile used to set/restore debugger state
19
20
  } unless defined?(DEFAULT_SETTINGS)
20
21
 
21
22
  # Default settings for Trepan run from the command line.
22
23
  DEFAULT_CMDLINE_SETTINGS = {
23
24
  :cmdfiles => [], # Initialization command files to run
24
- :nx => false, # Don't run user startup file (e.g. .rbdbgrc)
25
+ :nx => false, # Don't run user startup file (e.g. .trepanrc)
25
26
  :output => nil,
26
27
  } unless defined?(DEFAULT_CMDLINE_SETTINGS)
27
28
 
data/app/disassemble.rb CHANGED
@@ -7,9 +7,19 @@
7
7
  class Trepan
8
8
  module Disassemble
9
9
  def mark_disassembly(disassembly_str, iseq_equal, pc_offset,
10
- brkpt_offsets=[])
10
+ brkpt_offsets=[], max_width=80)
11
11
  dis_array = disassembly_str.split(/\n/)
12
12
  dis_array.map do |line|
13
+ if line =~ /^(.*?)(\s+)(\(\s+\d+\))?$/
14
+ line_begin = $1
15
+ line_padding = $2
16
+ line_end = $3 || ''
17
+ else
18
+ line_begin = line
19
+ line_padding = ''
20
+ line_end = ''
21
+ end
22
+
13
23
  prefix =
14
24
  if line =~ /^(\d{4}) /
15
25
  offset = $1.to_i
@@ -22,7 +32,12 @@ class Trepan
22
32
  else
23
33
  ''
24
34
  end
25
- prefix + line
35
+ line_size = prefix.size + line.size
36
+ shrink_amount = line_size - max_width
37
+ if (shrink_amount > 0) && line_padding.size > shrink_amount
38
+ line_padding = ' ' * (line_padding.size - shrink_amount)
39
+ end
40
+ prefix + line_begin + line_padding + line_end
26
41
  end
27
42
  end
28
43
  module_function :mark_disassembly
@@ -55,7 +70,14 @@ local table (size: 6, argc: 1 [opts: 0, rest: -1, post: 0, block: -1] s1)
55
70
  puts mark_disassembly(dis_string, true, pc_offset, brkpts).join("\n")
56
71
  end
57
72
  puts mark_disassembly(dis_string, false, 2).join("\n")
58
- puts '-' * 40
73
+ puts '=' * 40
74
+ # FIXME:
75
+ # require_relative '../lib/trepanning'
76
+ # debugger
77
+ # There is a bug in: "breakpoint mark_disassembly"
78
+ str = mark_disassembly(dis_string, false, 2, [], 70).join("\n")
79
+ puts str
80
+ puts '=' * 40
59
81
  require 'pp'
60
82
  PP.pp(disassemble_split(dis_string), $stdout)
61
83
  end
data/app/run.rb CHANGED
@@ -46,23 +46,6 @@ module Trepanning
46
46
  untrace_var(:$0, dollar_0_tracker)
47
47
  end
48
48
 
49
- # Return an ARRAY which makes explicit what array is needed to pass
50
- # to system() to reinvoke this debugger using the same Ruby
51
- # interpreter. Therefore, We want to the full path of both the Ruby
52
- # interpreter and the debugger file ($0). We do this so as not to
53
- # rely on an OS search lookup and/or the current working directory
54
- # not getting changed from the initial invocation.
55
- #
56
- # Hmmm, perhaps it is better to also save the initial working
57
- # directory? Yes, but on the other hand we can't assume that it
58
- # still exists so we might still need to have the full paths.
59
- #
60
- # It is the caller's responsibility to ensure that argv is the same
61
- # as ARGV when the debugger was invokes.
62
- def explicit_restart_argv(argv)
63
- [ruby_path, File.expand_path($0)] + argv
64
- end
65
-
66
49
  # Path name of Ruby interpreter we were invoked with.
67
50
  def ruby_path
68
51
  File.join(%w(bindir RUBY_INSTALL_NAME).map{|k| RbConfig::CONFIG[k]})
@@ -91,5 +74,4 @@ if __FILE__ == $0
91
74
  puts whence_file('irb')
92
75
  puts whence_file('probably-does-not-exist')
93
76
  puts ruby_path
94
- p explicit_restart_argv(ARGV)
95
77
  end
data/bin/trepan CHANGED
@@ -51,12 +51,10 @@ if File.basename(__FILE__) == File.basename($0)
51
51
  Trepan::PROG_SCRIPT = program_to_debug
52
52
 
53
53
  # Set global so others may use this debugger.
54
- $trepan = Trepan.new(:restart_argv =>
55
- explicit_restart_argv(Trepan::ARGV),
56
- :cmdfiles => options[:cmdfiles],
57
- :initial_dir => options[:chdir],
58
- :nx => options[:nx]
59
- )
54
+ $trepan = Trepan.new(:cmdfiles => options[:cmdfiles],
55
+ :initial_dir => options[:chdir],
56
+ :nx => options[:nx]
57
+ )
60
58
  debug_program($trepan, Trepan::RUBY_PATH,
61
59
  File.expand_path(program_to_debug))
62
60
  end
data/data/irbrc CHANGED
@@ -30,26 +30,12 @@ if defined?($trepan_cmdproc) && $trepan_cmdproc
30
30
  puts 'You should have access to the command processor via global variable $trepan_cmdproc'
31
31
  end
32
32
 
33
- # Monkeypatch to save the current IRB statement to be run and make the instruction sequence
34
- # "filename" unique. Possibly not needed.
33
+ # Monkeypatch to save the current IRB statement to be run.
35
34
  class IRB::Context
35
+ alias_method :_trepan_original_evaluate, :evaluate
36
36
  def evaluate(line, line_no)
37
37
  $trepan_irb_statements = line
38
- @line_no = line_no
39
- @eval_counter ||= 0
40
- container =
41
- if irb_path =~ /\((.+)\)/
42
- # Note we originally had a colon below. This causes IRB to think
43
- # tracebacks are IRB bugs since the regexp matching it uses here
44
- # is now messed up. (irb:5): in ... vs (irb): in ...
45
- "(#{$1}[#{@eval_counter}])"
46
- else
47
- irb_path
48
- end
49
- set_last_value(@workspace.evaluate(self, line, container, line_no))
50
- # @workspace.evaluate("_ = IRB.conf[:MAIN_CONTEXT]._")
51
- # @_ = @workspace.evaluate(line, irb_path, line_no)
52
- @eval_counter += 1
38
+ _trepan_original_evaluate(line, line_no)
53
39
  end
54
40
  end
55
41
 
data/io/base_io.rb CHANGED
@@ -60,15 +60,17 @@ class Trepan
60
60
  attr_reader :output
61
61
  def initialize(out, opts={})
62
62
  @output = out
63
+ @eof = false
63
64
  @flush_after_write = false
64
65
  end
65
66
 
66
67
  def close
67
68
  @output.close if @output
69
+ @eof = true
68
70
  end
69
71
 
70
72
  def eof?
71
- @input.eof?
73
+ @eof
72
74
  end
73
75
 
74
76
  def flush