Project

General

Profile

Bug #14702

Updated by makoto_tajitsu@hotmail.co.jp (Makoto Tajitsu) over 2 years ago

On Ruby 2.5.1, when loading file with RubyVM::InstructionSequence.load_from_binary, TracePoint callback event is not working on loaded file. 

 ## Steps to reproduce 

 Ruby version. 
 ``` 
 $ ruby -v 
 # => ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin16] 
 ``` 

 The example with `yomikomu` gem which is simply used `load_iseq` and `load_from_binary` method to load file quickly is following. 
 ``` 
 $ YOMIKOMU_AUTO_COMPILE=true bundle exec irb 

 > TracePoint.trace(:line) { |tp| puts tp.lineno if tp.path == '/path/to/somefile.rb' } 
 # => #<TracePoint:enabled> 

 > load '/path/to/somefile.rb' 
 # 3 
 # 4 
 # ... 

 require 'yomikomu' 

 load '/path/to/somefile.rb' './somefile.rb' 
 # no tracepoint callback for line event 
 ``` 

 On Ruby 2.4.3, this example is working correctly, so tracepoint callback is called and output lineno to stdout when loaded file after `require 'yomikomu'`.

Back