也许像KCacheGrind这样的工具会有所帮助。它基于实际调用生成呼叫图,并且不能在不实际运行程序的情况下预先生成呼叫图,这可能不适合您的需求,但也可能适合。
您似乎想获取C源代码的流程图(“决策”,“代码块”)。
类似于这个 C流程图?
要正确地做到这一点,特别是对于Linux内核代码,我希望您首先预处理代码以摆脱宏和条件语句。我认为GCC会在内部构建这样的图表,您应该能够得到这个图表。
Doxygen进行了一定程度的'可视化',
但是您需要对代码进行一些处理才能使用。
另一个有趣的事情是检查lxr
Linux Cross Referencer是一个用于索引和展示源代码库的软件工具集。LXR最初针对Linux源代码,但已被证明可用于各种软件项目。lxr.linux.no目前正在运行LXR软件的实验分支。