From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-3.6 required=3.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.0 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id 21948215F4 for ; Mon, 30 Apr 2018 16:53:46 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id DC1DB12090C; Tue, 1 May 2018 01:53:42 +0900 (JST) Received: from o1678948x4.outbound-mail.sendgrid.net (o1678948x4.outbound-mail.sendgrid.net [167.89.48.4]) by neon.ruby-lang.org (Postfix) with ESMTPS id F06F812090B for ; Tue, 1 May 2018 01:53:39 +0900 (JST) Received: by filter0004p3mdw1.sendgrid.net with SMTP id filter0004p3mdw1-30820-5AE74A0F-59 2018-04-30 16:53:35.736379144 +0000 UTC Received: from herokuapp.com (ec2-54-147-220-74.compute-1.amazonaws.com [54.147.220.74]) by ismtpd0029p1mdw1.sendgrid.net (SG) with ESMTP id mMe3mCnzQP-4H59w4pWotw Mon, 30 Apr 2018 16:53:35.670 +0000 (UTC) Date: Mon, 30 Apr 2018 16:53:36 +0000 (UTC) From: makoto_tajitsu@hotmail.co.jp To: ruby-core@ruby-lang.org Message-ID: References: Mime-Version: 1.0 X-Redmine-MailingListIntegration-Message-Ids: 62124 X-Redmine-Project: ruby-trunk X-Redmine-Issue-Id: 14702 X-Redmine-Issue-Author: makoto_tajitsu@hotmail.co.jp X-Redmine-Sender: makoto_tajitsu@hotmail.co.jp X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-SG-EID: ync6xU2WACa70kv/Ymy4QrNMhiuLXJG8OTL2vJD1yS7E+YV8LE0U/PpjBZKo+mhy0yBxVykd/U44Y4 QFN+1x/NQh720tT8rMdSwTkcd2rpat8krdbO6EwFy6E+9/YVo/5utqSQh2E55jqFb1hpx09W2wv4gQ ZBGuqzlnuvtC466xllLj5tjiZf3LpnNYaNeGWFRbViCwTL9TQZ8wejgUjQ== X-ML-Name: ruby-core X-Mail-Count: 86778 Subject: [ruby-core:86778] [Ruby trunk Bug#14702] On Ruby 2.5.1, tracepoint isn't working on the file that is loaded by load_iseq X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" Issue #14702 has been updated by makoto_tajitsu@hotmail.co.jp (Makoto Tajitsu). Description updated How is the issue? In addition to above, I confirm the issue in following example that does not use 3rd party gem. ```ruby #!/usr/bin/env ruby # Write ruby file File.write('./loaded_file.rb', 'puts :hello') # load file and write iseq file iseq = RubyVM::InstructionSequence.compile_file('./loaded_file.rb') File.write('./loaded_file.yarb', iseq.to_binary) # define load_iseq class RubyVM::InstructionSequence def self.load_iseq(fname) b = File.read('./loaded_file.yarb') RubyVM::InstructionSequence.load_from_binary(b) end end TracePoint.trace(:line) do |tp| puts "file: #{tp.path}, line: #{tp.lineno}" if tp.path =~ /loaded_file/ end load './loaded_file.rb' # => on ruby 2.5.0 and 2.5.1, no tracepoint callback is. ``` ---------------------------------------- Bug #14702: On Ruby 2.5.1, tracepoint isn't working on the file that is loaded by load_iseq https://bugs.ruby-lang.org/issues/14702#change-71736 * Author: makoto_tajitsu@hotmail.co.jp (Makoto Tajitsu) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin16] * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- 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. ```ruby $ YOMIKOMU_AUTO_COMPILE=true bundle exec irb > TracePoint.trace(:line) { |tp| puts tp.lineno if tp.path == '/path/to/somefile.rb' } # => # > load '/path/to/somefile.rb' # 3 # 4 # ... > require 'yomikomu' > load '/path/to/somefile.rb' # no tracepoint callback for line event ``` ## Result of reproduce process tracepoint callback isn't called on loaded file by using load_iseq and load_from_binary. ## Expected result and the reason why you expect tracepoint callback should be called for any loaded file to debug with debugguer(e.g. byebug). 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'`. -- https://bugs.ruby-lang.org/