From: keystonelemur@... Date: 2019-01-26T21:10:31+00:00 Subject: [ruby-core:91292] [Ruby trunk Misc#15568] TracePoint(:raise)#parameters raises RuntimeError Issue #15568 has been reported by baweaver (Brandon Weaver). ---------------------------------------- Misc #15568: TracePoint(:raise)#parameters raises RuntimeError https://bugs.ruby-lang.org/issues/15568 * Author: baweaver (Brandon Weaver) * Status: Open * Priority: Normal * Assignee: ---------------------------------------- Currently trying to get the `trace.parameters` of a method in a `raise` event will lead to a RuntimeError. I would contend that it should not, and that it would be perfectly valid to ask for the parameters in the case of an exception. The reason I do this is to see the arguments at the time of exception: ``` def extract_args(trace) trace.parameters.map(&:last).to_h do |name| [name, trace.binding.eval(name.to_s)] end end ``` I've noticed that I can technically "cheat" and get these same values like this: ``` def extract_args(trace) trace.binding.eval('local_variables').to_h do |name| [name, trace.binding.eval(name.to_s)] end end ``` Having the ability to get the parameters in a `raise` context would be very useful for debugging. I'm tempted to also suggest `TracePoint#local_variables` as it would provide additional context in a more exposed way than `TracePoint#binding.eval('local_variables')` -- https://bugs.ruby-lang.org/ Unsubscribe: