GCC:仅仪器非内联函数

GCC: instrument only non-inlined functions

我想用 -finstrument-functions 检测一个循环实时应用程序,以测量它花费时间的地方(我不能使用传统的分析器,因为只有特定的循环才会失败;我想存储执行跟踪不同的周期,只保留那些不保留周期时间的)。但是,-finstrument-functions 检测所有函数。对于小型内联函数(getter 和 setter),这会极大地扭曲代码的性能特征。如何仅检测非内联函数?

不幸的是,GCC 目前似乎没有执行此操作的选项:请参阅 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=28205 处的功能请求。 然而,Clang 确实有一个选项:-finstrument-functions-after-inlining。参见 https://reviews.llvm.org/D39331