2011-11-12 31 views
3

從錯誤回溯$!.backtrace中,可以提取每個步驟的方法名稱。我想進一步提取每個方法調用的接收者。我相信有一種方法可以做到這一點,因爲我看到this gem有這個功能。從回溯中獲取接收器信息

上述寶石似乎使用Kernel.set_trace_func,並記錄binding信息。但對所有方法調用都會顯着減慢程序的運行速度。如何有選擇地記錄與導致錯誤的調用堆棧相關的binding信息?

回答

1

據我所知,除了追蹤執行情況外,在發生異常後無法獲取binding信息。

C擴展可能可以訪問異常對象中可用的信息(請參閱https://github.com/ruby/ruby/blob/trunk/error.c#L552)。

你在這裏幾乎不走運...

+0

我明白了。感謝您的信息。 – sawa