From: deivid.rodriguez@... Date: 2015-11-09T04:38:07+00:00 Subject: [ruby-core:71389] [Ruby trunk - Bug #11668] [Open] SEGV instead of SystemStackError when using the TracePoint API Issue #11668 has been reported by David Rodr��guez. ---------------------------------------- Bug #11668: SEGV instead of SystemStackError when using the TracePoint API https://bugs.ruby-lang.org/issues/11668 * Author: David Rodr��guez * Status: Open * Priority: Normal * Assignee: * ruby -v: ruby 2.3.0dev (2015-11-09 trunk 52499) [x86_64-linux * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- **fixnum_monkey.rb** ~~~ class Fixnum define_method(:to_s) do |*args| to_default_s(*args) end alias_method :to_default_s, :to_s end ~~~ If I use this code normally it gives me SystemStackError as expected ~~~ $ ruby -e "load('fixnum_monkey.rb'); 5.to_s" fixnum_monkey.rb:2:in `block in ': stack level too deep (SystemStackError) from fixnum_monkey.rb:3:in `block in ' from fixnum_monkey.rb:3:in `block in ' from fixnum_monkey.rb:3:in `block in ' from fixnum_monkey.rb:3:in `block in ' from fixnum_monkey.rb:3:in `block in ' from fixnum_monkey.rb:3:in `block in ' from fixnum_monkey.rb:3:in `block in ' from fixnum_monkey.rb:3:in `block in ' ... 5804 levels... from fixnum_monkey.rb:3:in `block in ' from fixnum_monkey.rb:3:in `block in ' from fixnum_monkey.rb:3:in `block in ' from -e:1:in `
' ~~~ But if I enable the `return` event of the TracePoint API before using it, I get a segfault ~~~ $ ruby -e "load('fixnum_monkey.rb'); TracePoint.trace(:return) { |_tp| }; 5.to_s" Violaci��n de segmento ~~~ -- https://bugs.ruby-lang.org/