Issue #7435 has been updated by zzak (Zachary Scott).

Tracker changed from Bug to Feature
Category set to core
Status changed from Open to Assigned
Assignee set to ko1 (Koichi Sasada)
Target version set to 2.0.0


----------------------------------------
Feature #7435: Exceptions should have backtrace_locations
https://bugs.ruby-lang.org/issues/7435#change-33880

Author: sam.saffron (Sam Saffron)
Status: Assigned
Priority: Normal
Assignee: ko1 (Koichi Sasada)
Category: core
Target version: 2.0.0


Further to http://bugs.ruby-lang.org/issues/7051 

def boom
  raise "boom"
end

begin
  boom
rescue => e
  p e.backtrace
end

# ["t.rb:2:in `boom'", "t.rb:6:in `<main>'"]

It seems exceptions still store backtraces in strings, shouldn't the backtrace be stored in RubyVM::Backtrace::Location objects and then optionally grabbed using backtrace_locations or backtrace depending on how you feel? 

This means exceptions could be more efficient as filenames could easily be pinned in memory leading to significantly reduced allocation for exceptions. 


-- 
http://bugs.ruby-lang.org/