Bug #848


debug.rb doesn't have access to the source file under test until it has run

Added by pragdave (Dave Thomas) almost 15 years ago. Updated over 12 years ago.

Target version:
ruby -v:


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]
Emacs support available.

(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
4 while l.length > 70

Also, not line number range of [-4,5]

Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #847: debug.rb reports extraneous informationClosedko1 (Koichi Sasada)12/11/200801/20/2009Actions
Actions #1

Updated by yugui (Yuki Sonoda) almost 15 years ago

  • Assignee set to ko1 (Koichi Sasada)
  • Target version set to 1.9.1 Release Candidate



Actions #2

Updated by yugui (Yuki Sonoda) almost 15 years ago

  • Due date set to 12/24/2008



Actions #3

Updated by yugui (Yuki Sonoda) almost 15 years ago

  • Category set to YARV
  • Priority changed from Normal to 3



Actions #4

Updated by yugui (Yuki Sonoda) almost 15 years ago

  • 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



Actions #5

Updated by wsobel (William Sobel) almost 15 years ago

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,

  • Will Sobel

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();


Actions #6

Updated by ko1 (Koichi Sasada) almost 15 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

Applied in changeset r21571.


Also available in: Atom PDF