检测是否使用 gprof 检测构建了 ELF 二进制文件?

Jak*_*ski 11 executable elf profiling

是否可以检查给定的程序是否是使用 GNU gprof 工具编译的,即“-pg”标志传递给编译器和链接器,而不运行它来检查它是否会生成gmon.out文件?

Mat*_*Mat 10

您可以检查对函数的引用mcount(或者可能_mcount__mcount根据Implementation of Profiling)。此函数对于分析工作是必需的,并且对于非分析二进制文件应该不存在。

就像是:

$ readelf -s someprog | egrep "\s(_+)?mcount\b" && echo "Profiling is on for someprog"
Run Code Online (Sandbox Code Playgroud)

以上适用于此处的快速测试。