Codeviz生成linux内核的函数调用图
来源:互联网 发布:mac桌面壁纸超高清 编辑:程序博客网 时间:2024/04/28 04:35
Codeviz生成linux内核的函数调用图,以alloc_pages函数为例。
首先是编译内核,这里我们的目的是查看函数调用关系,并非安装新内核,所以直接
进行配置编译:
1.sudo apt-get installncurses-dev(这样才可以运行make menuconfig,否则会出错)
2.make menuconfig
3.make CC=/usr/local/gcc-graph/bin/gcc bzImage
4.make CC=/usr/local/gcc-graph/bin/gcc modules
生成调用图:
genfull -s "mm include/linuxdrivers/block arch/i386 fs init lib kernel net ipc"这里使用了-s选项,虽然仍然会产生冲突,但是对于kernel的基本部分来说多数还是没有冲突的。这里的选择也是为了自己将来分析kernel用,你可以根据自己的需要来生成full.graph。
生成了full.graph后调用gengraph生成alloc_pages的函数调用图,这里我们先直接使用项目网站上使用的命令,然后再进行解释:
gengraph -f alloc_pages -d 5 -t -s"buffered_rmqueue out_of_memory try_to_free_pages numa_node_id" -i"cpuset_zone_allowed" --output-font="Arial" --output-type="png"
使用 Daemon/Client 模式:
当full.graph很大时,大量的时间花费到读取输入文件上了,例如kernel的full.graph 是很大的,前面生成的大约有15M,这还不是全部内核的函数调用分析信息。为了节省时间,可以将gengraph以daemon方式运行,这要使用-p选项:
gengraph -p -g full.graph
该命令返回时gengraph以daemon方式运行,同时在/tmp目录下生成了codeviz.pipe文件。
要生成函数调用图,可以使用-q选项:
gengraph -q -t -d 5 -f alloc_pages
要终止gengraph的运行,使用如下命令:
echo QUIT > /tmp/codeviz.pipe
- Codeviz生成linux内核的函数调用图
- 用CodeViz 生成函数关系调用图
- CodeViz源代码中函数调用关系的调用图生成工具
- 使用CodeViz生成C/C++函数调用关系图
- Graphviz + CodeViz生成C/C++函数调用图(call graph)
- CodeViz产生函数调用图
- CodeViz —— 一款分析 C/C++源代码中函数调用关系的调用图生成工具
- 用CodeViz产生函数调用图
- 用CodeViz产生函数调用图(原创)
- 看开源代码利器—用Graphviz + CodeViz生成C/C++函数调用图(call graph)
- 看开源代码利器—用Graphviz + CodeViz生成C/C++函数调用图(call graph)
- 开源代码利器Graphviz + CodeViz生成C/C++函数调用图(call graph)
- 看开源代码利器—用Graphviz + CodeViz生成C/C++函数调用图(call graph)
- 看开源代码利器—用Graphviz + CodeViz生成C/C++函数调用图(call graph)
- 用Codeviz分析linux内核
- codeviz+graphviz分析项目的函数调用关系
- 用CodeViz绘制函数调用关系图(call graph)
- 用CodeViz绘制函数调用关系图(call graph)
- 二叉树中找出和为给定值得所有路径
- HDU 1864 最大报销额
- oracle 10g 在win7下安装,提示程序异常终止,发生未知错误
- 图像去模糊资源整理
- 关于二维数组名是什么?
- Codeviz生成linux内核的函数调用图
- 小黑小波比.在Ubuntu安装****tar.gz文件包
- 项目配置——添加第三方资源
- oracle基础详解(一)Windows_7安装oracle和简单配置详解
- 网页的质量是SEO工作中的难点
- Frozen软件介绍
- [小技巧] tar 在打包时忽略 .svn 目录
- QListWidget.setWrapping(True)
- 回文串