3
從錯誤回溯$!.backtrace
中,可以提取每個步驟的方法名稱。我想進一步提取每個方法調用的接收者。我相信有一種方法可以做到這一點,因爲我看到this gem有這個功能。從回溯中獲取接收器信息
上述寶石似乎使用Kernel.set_trace_func
,並記錄binding
信息。但對所有方法調用都會顯着減慢程序的運行速度。如何有選擇地記錄與導致錯誤的調用堆棧相關的binding
信息?
從錯誤回溯$!.backtrace
中,可以提取每個步驟的方法名稱。我想進一步提取每個方法調用的接收者。我相信有一種方法可以做到這一點,因爲我看到this gem有這個功能。從回溯中獲取接收器信息
上述寶石似乎使用Kernel.set_trace_func
,並記錄binding
信息。但對所有方法調用都會顯着減慢程序的運行速度。如何有選擇地記錄與導致錯誤的調用堆棧相關的binding
信息?
據我所知,除了追蹤執行情況外,在發生異常後無法獲取binding
信息。
C擴展可能可以訪問異常對象中可用的信息(請參閱https://github.com/ruby/ruby/blob/trunk/error.c#L552)。
你在這裏幾乎不走運...
我明白了。感謝您的信息。 – sawa