Bug #848
closed
debug.rb doesn't have access to the source file under test until it has run
Added by pragdave (Dave Thomas) almost 16 years ago.
Updated over 13 years ago.
Description
=begin
dave[RUBY3/Book 14:51:21*] ruby -v -r debug t.rb
ruby 1.9.1 (2008-12-10 revision 20602) [i386-darwin9.5.0]
Debug.rb
Emacs support available.
/usr/local/rubybook/lib/ruby/1.9.1/debug.rb:904:
(rdb:1) l
[899, 908] in /usr/local/rubybook/lib/ruby/1.9.1/debug.rb
No sourcefile available for /usr/local/rubybook/lib/ruby/1.9.1/debug.rb <<<< !!!
(rdb:1) step
t.rb:1:var = 'cat'
(rdb:1) l
[-4, 5] in t.rb
=> 1 var = 'cat'
2 def escape(l, s); l; end
3
4 while l.length > 70
Also, not line number range of [-4,5]
=end
- Assignee set to ko1 (Koichi Sasada)
- Target version set to 1.9.1 Release Candidate
- Due date set to 12/24/2008
- Category set to YARV
- Priority changed from Normal to 3
- Due date changed from 12/24/2008 to 01/20/2009
- Target version changed from 1.9.1 Release Candidate to 1.9.1 RC2
=begin
Found a patch that fixes this bug, not sure if it's correct. The problem is the compile_for_eval is always 1 (coming from the th->parse_in_eval flag.) The parse_in_eval is incremented in the process_options function, not sure why. I tried to change the value and things broke in a most horrible manor.
Found a quick fix that seems to work correctly, just removed the check for compile_in_eval. The check for debug_lines seems to do the right thing. Not sure if this is a help, just trying to be useful. ;-)
Hope this helps,
Index: parse.y¶
--- parse.y (revision 21497)
+++ parse.y (working copy)
@@ -4977,7 +4977,7 @@
NODE *tree;
struct parser_params *parser = (struct parser_params *)arg;
- if (!compile_for_eval && rb_safe_level() == 0) {
- if (rb_safe_level() == 0) {
ruby_debug_lines = debug_lines(ruby_sourcefile);
if (ruby_debug_lines && ruby_sourceline > 0) {
VALUE str = STR_NEW0();
=end
- Status changed from Open to Closed
- % Done changed from 0 to 100
=begin
Applied in changeset r21571.
=end
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0