Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我尝试为一些 c 项目构建探查器。我希望 gcc 在编译时在所有函数入口和函数出口点中植入一些汇编指令。我尝试在网上搜索一些指南,但没有成功。我在哪里可以学习如何做到这一点?
预先感谢。
显然您可以使用该-finstrument-functions标志来获取 gcc 以生成检测调用
-finstrument-functions
void __cyg_profile_func_enter(void *func, void *callsite); void __cyg_profile_func_exit(void *func, void *callsite);
在函数入口和出口处。我从未使用过它,但快速搜索会在此处、此处、此处和此处找到信息和示例。
除非您想修改gcc(这很重要!),否则我认为有两种相当明显的方法。
gcc
显然,修改的选项gcc也是一种可能,但编译器代码相当复杂,除非你基本上把所有现有的钩子都用于gprof,否则我不认为这是一个学校项目——除非你正在攻读博士学位或一些这样的。
gprof