设为首页 加入收藏

TOP

看开源代码利器—用Graphviz + CodeViz生成C/C++函数调用图(call graph)(三)
2015-02-02 14:23:15 来源: 作者: 【 】 浏览:29
Tags:看开 源代码 利器 Graphviz CodeViz 生成 C/C 函数 调用 call graph
sdn.net/leo115/article/details/7671819解决。


?


(2)../../gcc-4.6.2/gcc/realmpfr.h:27:17: fatal error: mpc.h: No such file or directory
分析:gcc没找到所依赖的库mpc,原因很多,最有可能是你没设置环境变量或mpc放的地方不对。


解决方法:设置环境变量,看问题1。


?


(3) /usr/include/stdc-predef.h:30:26: fatal error: bits/predefs.h: No such file or directory


分析:用命令“locate bits/predefs.h”找下该头文件的路径,发现是在'/usr/include/x86_64-linux-gnu'
解决方法:设置环境变量:
#export C_INCLUDE_PATH=/usr/include/i386-linux-gnu && export CPLUS_INCLUDE_PATH=$C_INCLUDE_PATH


?


(4) /usr/bin/ld: cannot find crti.o: No such file or directory


分析:同样用“locate crti.o” 找下这个文件,在'/usr/lib/i386-linux-gnu/crti.o'。


解决方法:设置LIBRARY_PATH (LDFLAGS)这个环境变量如下:
#export LIBRARY_PATH=/usr/lib/i386-linux-gnu


(5)unwind-dw2.c:1031: error: field `info' has incomplete type


分析:这个错误搞了好久,因为网上找不到对应的解决方法,只说这是gcc的一个bug。


解决方法:深入到源文件中,发现错误的地方是这样的:


?


?


?


出错的地方用标注了,因为fde返回了NULL,导致不能找到frame unwind info,最重要的是下面这个方法


出错了,为什么返回NULL我肯定研究不出来,只知道这个函数调用失败了,导致不成功,于是我的解决方法十分偷懒,就是将下面的两行注释掉了,直接success,哈哈,勿喷我,因为这样做过后就解决了,后面一路成功~~~


?


6.? 解决ln?-s?软链接产生Too?many?levels?of?symbolic?links错误


从网上查找了一下原因,原来是建立软连接的时候采用的是相对路径,所以才会产生这样的错误,解决方式是采用绝对路径建立软链接:这样问题就解决了。


本文查阅了网上的许多资料比较详细的讲解了CodeViz的安装和使用。CodeViz依赖于GraphViz,因而可以生成十分丰富的函数调用图。具体选项的使用及图像格式的选择可由读者根据个人需要和偏好自己揣摩使用。在分析源码的时候,把这些图形打印在手边,在上面做笔记,实在方便收益颇多。


首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇GCC 函数调用探测功能 下一篇10道C++输出易错笔试题收集

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: