B
Bart Masschelein
Hello all,
Is there a reason why these lines of code:
require 'tracer'
Tracer.on
class SomeClass
def someMethod
puts "Some text"
end
end
produce the following output:
#0:TracerTest.rb:3:Tracer:<: Tracer.on
#0:TracerTest.rb:3:Tracer:<: Tracer.on
#0:TracerTest.rb:5::-: class SomeClass
#0:TracerTest.rb:5:Class:>: class SomeClass
#0:TracerTest.rb:5:Class:<: class SomeClass
#0:TracerTest.rb:5::C: class SomeClass
#0:TracerTest.rb:6::-: def someMethod
#0:TracerTest.rb:6:Module:>: def someMethod
#0:TracerTest.rb:6:Module:<: def someMethod
#0:TracerTest.rb:5::E: class SomeClass
#0:TracerTest.rb:11::-: Tracer.off
caller TracerTest.rb:13
Why isn't it :
#0:TracerTest.rb:3:Tracer:<: Tracer.on
#0:TracerTest.rb:3:Tracer:<: Tracer.on
#0:TracerTest.rb:5::-: class SomeClass
#0:TracerTest.rb:5:Class:>: class SomeClass
#0:TracerTest.rb:5:Class:<: class SomeClass
#0:TracerTest.rb:5::C: class SomeClass
#0:TracerTest.rb:6::-: def someMethod
#0:TracerTest.rb:6:Module:>: def someMethod
#0:TracerTest.rb:8:Module:<: def someMethod
#0:TracerTest.rb:9::E: class SomeClass
#0:TracerTest.rb:11::-: Tracer.off
caller TracerTest.rb:13
So you know when browsing through the require tree, on which line a
class or method begins, and where it ends. I guess it is not a Tracer
issue, but rather a set_trace_func method(), by the return values you get.
This would be useful, as you could first make a model of your code by
changing the Tracer, and when the execution starts, stopping the Tracer,
as it reduces the overhead (because of the set_trace_func_method() with
some filters on). Then later, you can call caller, and by the filename
and linenumber exactly know where this fits in the model.
Or are there other ways to do this?
Bart.
Is there a reason why these lines of code:
require 'tracer'
Tracer.on
class SomeClass
def someMethod
puts "Some text"
end
end
produce the following output:
#0:TracerTest.rb:3:Tracer:<: Tracer.on
#0:TracerTest.rb:3:Tracer:<: Tracer.on
#0:TracerTest.rb:5::-: class SomeClass
#0:TracerTest.rb:5:Class:>: class SomeClass
#0:TracerTest.rb:5:Class:<: class SomeClass
#0:TracerTest.rb:5::C: class SomeClass
#0:TracerTest.rb:6::-: def someMethod
#0:TracerTest.rb:6:Module:>: def someMethod
#0:TracerTest.rb:6:Module:<: def someMethod
#0:TracerTest.rb:5::E: class SomeClass
#0:TracerTest.rb:11::-: Tracer.off
caller TracerTest.rb:13
Why isn't it :
#0:TracerTest.rb:3:Tracer:<: Tracer.on
#0:TracerTest.rb:3:Tracer:<: Tracer.on
#0:TracerTest.rb:5::-: class SomeClass
#0:TracerTest.rb:5:Class:>: class SomeClass
#0:TracerTest.rb:5:Class:<: class SomeClass
#0:TracerTest.rb:5::C: class SomeClass
#0:TracerTest.rb:6::-: def someMethod
#0:TracerTest.rb:6:Module:>: def someMethod
#0:TracerTest.rb:8:Module:<: def someMethod
#0:TracerTest.rb:9::E: class SomeClass
#0:TracerTest.rb:11::-: Tracer.off
caller TracerTest.rb:13
So you know when browsing through the require tree, on which line a
class or method begins, and where it ends. I guess it is not a Tracer
issue, but rather a set_trace_func method(), by the return values you get.
This would be useful, as you could first make a model of your code by
changing the Tracer, and when the execution starts, stopping the Tracer,
as it reduces the overhead (because of the set_trace_func_method() with
some filters on). Then later, you can call caller, and by the filename
and linenumber exactly know where this fits in the model.
Or are there other ways to do this?
Bart.