簡體   English   中英

Ruby:如何打印函數調用跟蹤?

[英]Ruby: how to print function calling trace?

當我使用C ++時,我可以在每個函數的開頭添加一個方便的宏來打印被調用函數的信息,也可以使用適當的縮進(參見下面的示例)。 我想知道Ruby中是否有類似的工具。 非常感謝。

int A (int a, int b)
{
  TRACE("%d", a);
  B(b);
  ...
}

int B (int b)
{
  TRACE("%d", b);
  ...
}

運行時輸出,

==> A(a)
====> B(b)
...

就在這里。 它叫做caller

def foo
  p caller
  # ...
end

該方法返回當前執行堆棧 - 一個包含表單文件中的字符串的數組:line或file:line:in`method'。

為了更好地格式化,您可以使用pp而不是p來打印堆棧。

require 'pp'
def foo
  pp caller
  # ...
end

我相信你要找的是p函數:

這將打印關於對象a

p a

另一個不錯的工具是inspect方法。

a.inspect

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM