gpt4 book ai didi

linux - 通过 gcc 的 -finstrument-functions 选项打印行号

转载 作者:太空宇宙 更新时间:2023-11-04 10:25:10 24 4
gpt4 key购买 nike

有没有办法在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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com