我的日志代码使用backtrace()的返回值来确定当前的堆栈深度(用于漂亮的打印目的),但我可以从分析中看到这是一个非常昂贵的调用.
我不认为有更便宜的方法吗?请注意,我不关心帧地址,只有它们有多少.
编辑:这些日志记录功能遍布大型代码库,因此手动跟踪堆栈深度并不是一种选择.
c linux stack backtrace
backtrace ×1
c ×1
linux ×1
stack ×1