【一人 bugs.ruby Advent Calendar 2021】[Feature #17743] Show argument types in backtrace【19日目】
一人 bugs.ruby Advent Calendar 2021 19日目の記事になります。
今日はバックトレースに引数情報も追加する話です。
[Feature #17743] Show argument types in backtrace
バックトレースに引数情報も追加する提案です。
例えば以下のようなコードを実行すると
def say_hi(person) puts message(person) end def message(person) "hi: #{person.name}" end say_hi(nil)
以下のようなバックトレースが出力されますが、
hi.rb:6:in `message': undefined method `name' for nil:NilClass (NoMethodError) from hi.rb:2:in `say_hi' from hi.rb:9:in `<main>'
これを以下のようにする提案になります。
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
どのような表記にするのか(クラスだけ?値は必要がない?複数の引数の場合は?)やパフォーマンス的な懸念点がないか議論されています。
デバッグ情報としては全ての情報が表示されているとよいのですが、普段遣いで全部表示されてもノイズが多そうなのでトレードオフがむずかしそうですねえ。