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


On Wed, Dec 10, 2008 at 12:46 PM, Dave Thomas <redmine / ruby-lang.org> wrote:

> Bug #848: debug.rb doesn't have access to the source file under test until
> it has run
> http://redmine.ruby-lang.org/issues/show/848
>
> Author: Dave Thomas
> Status: Open, Priority: Normal
>
> 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]
>
>
> ----------------------------------------
> http://redmine.ruby-lang.org
>
>