爲了給出一個背景,我想以一種整潔的方式直觀地打印基於調用堆棧的日誌消息。如何獲取函數在調用堆棧中的位置?
例如。
應該給輸出
foo(){
printf("Foo was called");
bar();
}
bar(){
printf("bar was called");
jai();
}
jai(){
printf("Jai was called");
}
<<<OUTPUT>>>
Foo was called.
bar was called
jai was called.
我並不想傳遞的空格數作爲參數,這些功能或保持相同的全局計數。
我在想,如果我們可以在調用堆棧中獲得函數的位置,那麼我們可以在文本之前填充相同數量的空格以獲得所需的輸出格式。
我看到backtrace函數調用提供了整個堆棧名稱以及返回。它還返回調用中的函數總數。
是否有任何函數只返回位置?
「_if我們可以在調用堆棧_中獲得函數的位置」:這是要執行的很多指令,或者是一個參數,或者一個全局變量。 –