From: samuel@... Date: 2021-06-19T02:33:54+00:00 Subject: [ruby-core:104369] [Ruby master Bug#15634] TracePoint seems to be skipping some methods. Issue #15634 has been updated by ioquatix (Samuel Williams). I wouldn't say this bug is fixed. Adding documentation just clarifies the current behaviour but does not help resolve or improve on the original problem. I would say, the line tracepoint is confusing at best, as one might expect it to trigger for each "line" of executable code. The implementation obviously skips some cases, but documenting the cases that it skips does not help me much to improve the coverage computation. Maybe the problem is the naming of the tracepoint - maybe it should be called "statement" or "top_level_expression". ---------------------------------------- Bug #15634: TracePoint seems to be skipping some methods. https://bugs.ruby-lang.org/issues/15634#change-92607 * Author: ioquatix (Samuel Williams) * Status: Closed * Priority: Normal * ruby -v: 2.6.1 * Backport: 2.4: UNKNOWN, 2.5: UNKNOWN, 2.6: UNKNOWN ---------------------------------------- ```ruby trace_point = TracePoint.new(:call, :return, :line, :c_call, :c_return, :b_call, :b_return) do |trace| puts [trace.path, trace.lineno].join(":") end trace_point.enable values = {foo: 10} def shell_escape(x) x end values.map{|key, value| [ key.to_s.upcase, shell_escape(value) # TracePoint is never triggered for this line. ]} ``` -- https://bugs.ruby-lang.org/ Unsubscribe: