[ruby-core:103003] [Ruby master Feature#17743] Show argument types in backtrace
From:
petrik@...
Date:
2021-03-24 20:39:38 UTC
List:
ruby-core #103003
Issue #17743 has been updated by p8 (Petrik de Heus).
Eregon (Benoit Daloze) wrote in #note-2:
> How would your format when the method takes multiple arguments?
```
from hi.rb:2:in `say_hi' called with NilClass, Numeric, String
```
> Should we show the value or just the class?
Values could possibly generate a lot of output and it might contain private data that you don't want to output.
Maybe for Boolean values showing true and false.
> I think in general this can be useful, but at the same time it's not nearly as useful as a debugger,
I agree a debugger is more useful. This would mostly be useful for finding nils.
> and it can be a significant performance overhead for JITs/VMs which would then need to collect all frames and arguments in every exception's backtrace, as well as a copy of the arguments array (instead of just [call site bci/node, called method name/target]).
I can imagine it being a performance overhead.
----------------------------------------
Feature #17743: Show argument types in backtrace
https://bugs.ruby-lang.org/issues/17743#change-91066
* Author: p8 (Petrik de Heus)
* Status: Open
* Priority: Normal
----------------------------------------
Given the following Ruby program:
``` ruby
def say_hi(person)
puts message(person)
end
def message(person)
"hi: #{person.name}"
end
say_hi(nil)
```
It would be helpful if the backtrace contained the types of the argumets:
```
hi.rb:6:in `message': undefined method `name' for nil:NilClass (NoMethodError)
from hi.rb:2:in `say_hi' called with NilClass
from hi.rb:9:in `<main>' called with NilClass
```
Inspired by the following Twitter thread: https://twitter.com/lzsthw/status/1374350046909628423
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>