RK3568平台开发系列讲解(调试篇)静态分析 C 程序函数调用关系图

📅 2026/7/2 1:27:42
RK3568平台开发系列讲解(调试篇)静态分析 C 程序函数调用关系图
🚀返回专栏总目录文章目录前言一、Callgraph:三步流水线1.1 安装1.2 工作原理二、实战:分析 Linux 0.11 内核2.1 准备实验环境2.2 一键生成调用关系图2.3 分析其他函数2.4 模糊匹配2.5 指定函数所在文件或目录三、进阶:分析新版 Linux 内核3.1 基本用法3.2 过滤噪声函数3.3 限制调用深度3.4 指定搜索路径四、Callgraph 命令速查4.1 完整参数4.2 常用组合五、其他静态分析工具5.1 egypt:基于 GCC RTL 的分析5.2 CodeViz:编译器级分析5.3 clang AST:语法树级分析5.4 Doxygen + Graphviz5.5 工具对比六、趣玩 tree2dotx:不仅仅是函数调用6.1 目录结构可视化6.2 指定子目录6.3 自定义树状数据七、cflow 使用注意事项7.1 不支持目录递归分析7.2 同名函数合并问题7.3 无法处理的内容八、总结沉淀、分享、成长,让自己和他人都能有所收获!😄前言源码分析是开发者离不开的基本功。无论是研究开源项目,还是日常做各类移植、开发,都避免不了对源码的深入解读。工欲善其事,必先利其器。传统的命令行工具 Cscope、Ctags 可以配合 vim 实现高效快捷的跳转,但无法清晰展示函数内部的逻辑层次关系。图形化的 IDE(如 QtCreator、Source Insight、Eclipse、Android Studio 等)虽然功能丰富,却显得笨重,且不一定支持导出调用关系图。在线代码交叉检索工具(如 LXR、OpenGrok 等)提供了便捷的 Web 展示,但同样无法提供函数关系的清晰可视化。今天我们来玩转一套轻量级工具——Callgraph,它可以把 C 语言的函数调用树(或者说流程图)画出来。