Если функция низкого уровня написана на Ruby, заново откройте ее класс и используйте alias_method_chain
:
class TheClass
def low_level_with_debug_output
puts "I am being called by #{caller.first.inspect}"
low_level_without_debug_output
end
alias_method_chain :low_level, :debug_output
end
alias_method_chain
- это Rails-изм.
Если низкоуровневая функция не написана на Ruby, вам может понадобиться вместо этого использовать ruby-debug или даже gdb на самом интерпретаторе, чтобы получить трассировку стека.