当接手新项目时,通过此方法可以迅速了解程序运行期间各个函数的调用关系,来帮助熟悉代码。
首先:
gcc编译时加上参数 -finstrument-functions 。
加上此参数则需要自己实现约定好的4个函数,通过这4个函数来实现跟踪。
4个函数的实现代码在gmail。
通过这4个函数,将每次调用时的函数地址输出到文件,然后使用addr2line转换成函数名。
这个步骤的代码实现在gmail:treefunc.c
附注:
整个跟踪过程会产生大量的数据,treefunc.c的输出更可能达到数百M。待优化
首先:
gcc编译时加上参数 -finstrument-functions 。
加上此参数则需要自己实现约定好的4个函数,通过这4个函数来实现跟踪。
4个函数的实现代码在gmail。
通过这4个函数,将每次调用时的函数地址输出到文件,然后使用addr2line转换成函数名。
这个步骤的代码实现在gmail:treefunc.c
附注:
整个跟踪过程会产生大量的数据,treefunc.c的输出更可能达到数百M。待优化
本文介绍了一种使用GCC编译器的-finstrument-functions参数来跟踪和理解项目中函数调用关系的方法。通过实现四个特定的函数并利用addr2line工具,可以记录下运行时的函数调用情况,进而帮助开发者快速熟悉代码逻辑。
2147

被折叠的 条评论
为什么被折叠?



