有没有办法在gcc的-finstrument-functions
选项中获取当前函数的行号,比如gcc的__LINE__
最佳答案
不,您只能在预处理时访问 __LINE__
并且 __cyg_profile
函数会在很晚的时候插入。您可以做的是获取返回地址(通过 __builtin_return_address
)并在运行时对其进行符号化(例如通过调用 addr2line
)。这当然只有在调用者的代码是使用 debuginfo 编译的情况下才有效。
编辑
正如下面的 Tsyvarev 所指出的,__builtin_return_address
不是必需的,因为 __cyg_profile
获取函数地址作为参数。
关于linux - 通过 gcc 的 -finstrument-functions 选项打印行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41929308/