我想写一个打印LINE,FILE,FUNC和一些其他的东西调试打印功能。转折是,我想根据自己的调用堆栈深度自动缩进打印输出,所以像获取调用堆栈的深度GCC
main.c:55:main()
functions.c:33:function1()
functions.c:133:function2()
functions.c:33:function1()
functions.c:33:function1()
如果FUNCTION1立即返回,并且调用函数2次功能1。
我想这可以通过使用一个全局变量来完成,每次函数被调用时都会手动递增,每当返回时递减,但是这将需要相当多的代码基础。我想知道是否有更简单的方法来做到这一点?
我不介意解决方案是非标准的C,只要它是标准的GNU。
[提示](https://开头的连接。 wiktionary.org/wiki/BTDT):灌输一些控制来限制代码搜索堆栈的高度,因为堆栈可能非常深。 – chux