From: Will Sobel Date: 2009-01-14T09:26:59+09:00 Subject: [ruby-core:21322] Re: [Bug #848] debug.rb doesn't have access to the source file under test until it has run --000e0cd211cc0df39d046066695f Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit 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 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 > > --000e0cd211cc0df39d046066695f Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

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 bro= ke in a most horrible manor.

Found a quick fix that seems to work correctly, just re= moved 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. ;-)<= /div>

Hope this helps,
- Will Sobel

<= /div>
Index: parse.y
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D
--- parse.y     (revision 21497)
+++ parse.y     (working copy)
@@ -4977,7 +4977,7 = @@
     NODE *tree;
     = struct parser_params *parser =3D (struct parser_params *)arg;
&nb= sp;
-    if (!compile_for_eval && rb_safe_level= () =3D=3D 0) {
+    if (rb_safe_level() =3D=3D 0) {
   =      ruby_debug_lines =3D debug_lines(ruby_sourcefile);
        if (ruby_debug_lines && ruby= _sourceline > 0) {
           &n= bsp;VALUE str =3D 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 un= til 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 &nb= sp;  <<<< !!!



(rdb:1) step
t.rb:1:var =3D 'cat'
(rdb:1) l
[-4, 5] in t.rb
=3D> 1  var =3D 'cat'
  2  def escape(l, s); l; end
  3
  4  while l.length > 70



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


----------------------------------------
http://redmine.r= uby-lang.org


--000e0cd211cc0df39d046066695f--