Profiler bug in 1.8.2?

I'm getting an exception when I profile an application of mine. It profiled
just fine under 1.8.1 but I just upgraded to 1.8.2 on Windows.

Below is the output from the run of my app. Note that CLUI.rb is the main
script for the app and line 1 is blank in the file.

  % cumulative self self total
time seconds seconds calls ms/call ms/call name
150.00 0.01 0.01 1 15.00 15.00
Profiler__.start_profile
  0.00 0.01 0.00 1 0.00 10.00 #toplevel
  0.00 0.01 0.00 1 0.00 15.00 Kernel.require
c:/ruby/lib/ruby/1.8/profiler.rb:30: undefined method `[]' for nil:NilClass
(NoMethodError)
        from c:/ruby/lib/ruby/1.8/profiler.rb:5:in `require'
        from u:/ian/rubyversion/CLUI.rb:2:in `require'
        from u:/ian/rubyversion/CLUI.rb:2

Just to clarify (in case I'm misusing the profiler), this program causes the
same error:

require 'profile'

a = 5
print a

Hi,

It didn't reproduce on my Linux machine. Does anyone else get same
error? Windows specific problem maybe?

              matz.

···

In message "Re: Profiler bug in 1.8.2?" on Sat, 8 Jan 2005 04:46:30 +0900, "DaZoner" <bugmenot@world.com> writes:

I'm getting an exception when I profile an application of mine. It profiled
just fine under 1.8.1 but I just upgraded to 1.8.2 on Windows.

Below is the output from the run of my app. Note that CLUI.rb is the main
script for the app and line 1 is blank in the file.

% cumulative self self total
time seconds seconds calls ms/call ms/call name
150.00 0.01 0.01 1 15.00 15.00
Profiler__.start_profile
0.00 0.01 0.00 1 0.00 10.00 #toplevel
0.00 0.01 0.00 1 0.00 15.00 Kernel.require
c:/ruby/lib/ruby/1.8/profiler.rb:30: undefined method `' for nil:NilClass
(NoMethodError)
       from c:/ruby/lib/ruby/1.8/profiler.rb:5:in `require'
       from u:/ian/rubyversion/CLUI.rb:2:in `require'
       from u:/ian/rubyversion/CLUI.rb:2

Yukihiro Matsumoto wrote:

It didn't reproduce on my Linux machine. Does anyone else get same
error? Windows specific problem maybe?

I'm able to reproduce it when RUBYOPT is set to 'rubygems' which is the case by default on the one-click installer.

It happens for

ruby -e "require 'profile'; a = 5; print a"

but not for

ruby -r profile -e "a = 5; print a"

It seems to be caused by other libraries getting loaded before the profile library.

I'm on ruby 1.8.2 (2004-12-25) [i386-mswin32]

It makes using the debugger a pain as well since you don't drop into
your own code but into the gems code.

M

···

On Sun, 9 Jan 2005 17:21:23 +0900, Florian Gross <flgr@ccan.de> wrote:

It seems to be caused by other libraries getting loaded before the
profile library.

--
Matt Mower :: http://matt.blogs.it/