当接手新项目时,通过此方法可以迅速了解程序运行期间各个函数的调用关系,来帮助熟悉代码。
首先:
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。待优化