首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >构建Linux内核二进制文件的完整控制流图

构建Linux内核二进制文件的完整控制流图
EN

Stack Overflow用户
提问于 2018-02-02 07:04:31
回答 4查看 1.2K关注 0票数 2

有没有工具可以为整个Linux内核二进制文件构建控制流图?例如,考虑为x86架构编译的Linux内核(vmlinux文件)。是否可以仅使用静态分析来确定所有执行路径(忽略间接分支或其他需要运行时信息的控制流)?有没有适合这方面的工具?

EN

回答 4

Stack Overflow用户

发布于 2018-02-02 09:50:48

有两个工具(CodeVizEgypt)可以在编译期间生成调用图。

我不认为学习Linux内核会对你有多大帮助。许多执行路径依赖于宏和运行时条件,因此静态分析器生成的调用图不太实用。您仍然需要使用printkdmesg来找出某些函数中发生了什么。与使用这些工具相比,printk更有用。

票数 1
EN

Stack Overflow用户

发布于 2018-02-02 13:50:06

我们的DMS Software Reengineering Toolkit及其C Front End可以做到这一点。

DMS提供通用解析、控制流图和调用图构造;C前端提供特定于C的解析细节,用于构建特定于C的流程图的逻辑包括间接gotos以及已在大约1600万行的代码系统上使用的指向分析,因此它应该处理Linux内核。流程图是针对每个编译单元生成的;调用图是针对一组链接的编译单元生成的。所有这些信息都可以以DMS数据结构的形式提供,如果您坚持,也可以以XML的形式导出,并且可以承受千兆字节的输出。

您可以查看Control flow, Data Flow, and Call graphs的示例。

票数 1
EN

Stack Overflow用户

发布于 2018-02-12 18:06:18

你可以试试CppDepend,它提供了一个功能强大的dependency graph,有很多特性。但是,您必须分析源代码,而不是二进制文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48573194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档