我尝试为某个c项目构建探查器。 我希望gcc在编译时在所有函数入口和函数出口点中设置一些汇编指令。 我尝试在网络上搜索一些指南,但没有成功。 我在哪里可以学习如何做到这一点?
提前谢谢。
答案 0 :(得分:5)
显然,您可以使用-finstrument-functions
标志来获取gcc以生成检测调用
void __cyg_profile_func_enter(void *func, void *callsite);
void __cyg_profile_func_exit(void *func, void *callsite);
答案 1 :(得分:2)
除非你想修改gcc
(这不重要!),我认为有两种相当明显的方法。
显然,修改gcc
的选项也是可能的,但编译器代码相当复杂,除非你基本上把gprof
的所有现有挂钩都拿走了,我认为它不是学校项目 - 除非你正在去博士学位或其他方面。