源代码浏览,理解和阅读工具

源代码浏览,理解和阅读工具,第1张

概述我主要是一个C和C程序员,我经常需要快速理解非常大的代码库( gcc, linux内核)的结构.我想知道在这方面是否有任何工具可以提供帮助.我对调用图,整个项目的数据结构参考,包括依赖图,快速符号位置等特别感兴趣.我知道ctags和cscope,但我正在寻找具有更多可视化的东西,如调用图,可以快速定位定义一个函数,在特定的调用中根图形,反转它(即定位对给定函数的所有调用),等等. 如果你想建立一个 我主要是一个C和C程序员,我经常需要快速理解非常大的代码库( gcc,linux内核)的结构.我想知道在这方面是否有任何工具可以提供帮助.我对调用图,整个项目的数据结构参考,包括依赖图,快速符号位置等特别感兴趣.我知道cTags和cscope,但我正在寻找具有更多可视化的东西,如调用图,可以快速定位定义一个函数,在特定的调用中根图形,反转它(即定位对给定函数的所有调用),等等.解决方法 如果你想建立一个呼叫图,你可以使用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(内核)的调用图.

总结

以上是内存溢出为你收集整理的源代码浏览,理解和阅读工具全部内容,希望文章能够帮你解决源代码浏览,理解和阅读工具所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1238289.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存