Ruby:如何打印调用跟踪的函数? 当我使用C++时,有一个方便的宏,我可以在每个函数的开头添加,以打印被调用函数的信息,也可以适当的缩进(见下面的例子)。我想知道Ruby中是否有类似的工具。非常感谢 int A (int a, int b) { TRACE("%d", a); B(b); ... } int B (int b) { TRACE("%d", b); ... }
运行时输出Ruby:如何打印调用跟踪的函数? 当我使用C++时,有一个方便的宏,我可以在每个函数的开头添加,以打印被调用函数的信息,也可以适当的缩进(见下面的例子)。我想知道Ruby中是否有类似的工具。非常感谢 int A (int a, int b) { TRACE("%d", a); B(b); ... } int B (int b) { TRACE("%d", b); ... },ruby,Ruby,运行时输出 ==> A(a) ====> B(b) ... 我相信您正在寻找的是p功能: 这将打印有关对象a p a 另一个很好的工具是inspect方法 a.inspect 是的,有。它叫 该方法返回当前执行堆栈—一个数组,其中包含“method”中格式为file:line或file:line:in的字符串 为了更好地格式化,可以使用pp而不是p打印堆栈 require 'pp' def foo pp caller # ... end 太好了,来电者太好了!谢谢。p
==> A(a)
====> B(b)
...
我相信您正在寻找的是
p
功能:
这将打印有关对象a
p a
另一个很好的工具是inspect
方法
a.inspect
是的,有。它叫 该方法返回当前执行堆栈—一个数组,其中包含“method”中格式为file:line或file:line:in的字符串 为了更好地格式化,可以使用
pp
而不是p
打印堆栈
require 'pp'
def foo
pp caller
# ...
end
太好了,来电者太好了!谢谢。
p
还返回argument对象,因此您可以像检查a.inspect
一样检查它,比如您正在记录它。但也有输出到标准输出。
require 'pp'
def foo
pp caller
# ...
end