Project

General

Profile

Actions

Bug #10763

closed

do not receive TracePoint event for elsif

Added by os97673 (Oleg Sukhodolsky) over 9 years ago. Updated almost 8 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]
[ruby-core:67720]

Description

Here is a simple test which shows that we do not receive TracePoint event for line with elsif,
and so it is impossible to implement debugger which will be able to set breakpoint on that line
(originally reported agains RubyMine's debugger - https://youtrack.jetbrains.com/issue/RUBY-14452)

trace = TracePoint.new do |tp|
  printf "%8s %s:%-2d %13s\n", tp.event, tp.path, tp.lineno, tp.method_id
end

def method1; false end
def method2; true end
trace.enable

if method1
  1
elsif method2
  2
end

Here is an output I'v got with 2.2.0 (the same problem we have with 1.9, 2.0, and 2.1)

c_return /Users/user/work/tests/slim-tests/ruby/debugger/ruby-14452.rb:7         enable
    line /Users/user/work/tests/slim-tests/ruby/debugger/ruby-14452.rb:9               
    call /Users/user/work/tests/slim-tests/ruby/debugger/ruby-14452.rb:5        method1
    line /Users/user/work/tests/slim-tests/ruby/debugger/ruby-14452.rb:5        method1
  return /Users/user/work/tests/slim-tests/ruby/debugger/ruby-14452.rb:5        method1
    call /Users/user/work/tests/slim-tests/ruby/debugger/ruby-14452.rb:6        method2
    line /Users/user/work/tests/slim-tests/ruby/debugger/ruby-14452.rb:6        method2
  return /Users/user/work/tests/slim-tests/ruby/debugger/ruby-14452.rb:6        method2
    line /Users/user/work/tests/slim-tests/ruby/debugger/ruby-14452.rb:12              
c_return -e:1           load

IMHO any user does expect that it should be possible to set breakpoint on "elsif" to be able to evaluate condition.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0