我主要是C和C++程序员,我经常需要快速理解非常大的代码库(gcc,linux内核)的结构。我想知道在这方面是否有任何工具可以提供帮助。我特别感兴趣的是调用图,整个项目中的数据结构引用,包括依赖关系图,快速符号位置等。我对ctags和cscope了解很多,但我正在寻找更多可视化的东西,例如调用图,以便快速定位定义的函数,在特定的调用上对图进行根,将其反转(即查找给定函数的所有调用)等。源代码浏览,理解和阅读工具
7
A
回答
0
请尝试使用SourceInsight。浏览代码并理解它非常有用。它提供了您所需的大部分功能。
5
如果您想构建通话图,您可以使用GCC的-finstrument-functions
推出自己的通话图。
基本上,当你编译程序启用该选项,GCC每当目标程序进入或退出一个函数调用以下功能:
void __cyg_profile_func_enter (void *this_fn,
void *call_site);
void __cyg_profile_func_exit (void *this_fn,
void *call_site);
什么,你需要做的就是定义这些功能,和写在你的逻辑中在那里产生调用图。
This extremely thorough tutorial说明如何使用-finstrument-functions
和GraphViz生成呼叫图。所有涉及的工具都是FOSS和免费的。
当然:
- GraphViz的生产的图都是独立的,而不是一个IDE的一部分。
- 我不确定是否可以用这种方式生成Linux(内核)的调用图。
0
你可以试试cflow。它给你一个里面函数的调用。虽然这不是很灵活。
相关问题
- 1. 阅读代码 - 有用的可视化工具和浏览器工具
- 2. 推荐源代码理解工具
- 3. 阅读源代码
- 4. Kindle如何被用作源代码阅读工具?
- 5. 阅读理解/第三方代码
- 6. 阅读Xen源代码
- 7. 用PHP阅读源代码
- 8. 是否有一个开放源代码(免费阅读)工具,允许我查看浏览器的HTTP命令?
- 9. 了解网站源代码的工具
- 10. 谷歌浏览器的原生PDF阅读器的源代码在哪里?
- 11. Json解码和阅读
- 12. TFS源代码资源管理器:浏览特定版本
- 13. 阅读浏览器Cookie ... jQuery
- 14. IOS:阅读的HTML源代码
- 15. 源代码文档工具
- 16. 源代码注释工具
- 17. 浏览器的用户代理资源
- 18. 源代码洞察,如免费源代码浏览器和Windows编辑器
- 19. FFmpeg:阅读源代码,我如何理解给定配置选项的影响?
- 20. 从Visual Studio浏览.NET Framework源代码
- 21. 如何在iPhone上浏览源代码?
- 22. 在iPhone上浏览源代码
- 23. 浏览器预览工具
- 24. 阅读用云代码解析对象
- 25. 处理html源代码vs浏览器dom
- 26. 是否有任何工具可以轻松阅读JavaScript代码?
- 27. 如何阅读心理Lisp/Clojure代码
- 28. 浏览器如何解析和解释JavaScript代码?
- 29. VB6代码管理工具
- 30. 浏览器不解释PHP代码
RTCM - 阅读编译器手册。大多数编译器都会执行一些你想要的操作,我希望你使用的编译器也不例外。 – 2012-08-14 10:17:15