使用soot eclipse插件的soot插件如何生成call graph

3026人阅读
工具收藏(15)
Java编程(24)
你有为软件编写说明文档的苦恼吗?当别人甩给你一个庞大的系统,让你根据里面的代码注释理解后写出一份完整的开发文档,你会怎么办?一个个的看代码然后耗时N天来写吗?这既是一份苦差事也极其耗时,有没有更好的办法呢?比如根据代码注释自动生成详尽的说明文档……可能有人会说用Javadoc就是了,要是C/C++、Python、C#等语言写的软件呢?有没有类似Javadoc的东西?
Yes,当然有,Doxygen就是这样一个能满足你需求的工具。Doxygen是一种开源跨平台的,以类似JavaDoc风格描述的文档系统,完全支持C、C++、Java、Objective-C和IDL语言,部分支持PHP、C#。注释的语法与Qt-Doc、KDoc和JavaDoc兼容。Doxgen可以从一套归档源文件开始,可将程序中的特定批注转换成为说明文件,生成HTML格式的在线类浏览器,或离线的LATEX、RTF参考手册。被Boost、OpenCasCade等诸多项目作为文档生成工具的不二选择。
由于我主要的开发语言是Java,所以在这里主要说明Doxygen在Eclipse里的集成及使用步骤。
1. 安装doxygen工具
在集成之前需要安装doxygen工具,下载方法有两种:目前最新版是1.8.6
(1)官方网站下载(建议):
&(2)在下载:
2.安装doxygen在Eclipse中的插件:Eclox
建议在其官方网站下载:
下载后解压,安装插件的方法也有几种:
<span style="color:#. 将eclox_0.8.0中的plugins和features目录里的内容,移动到eclipse中的plugins和features目录里重启即可,最简单。
<span style="color:#. 通过links方法安装插件(建议该方法,具体可Google)。
<span style="color:#. 采用Eclipse里的update manager安装插件,具体方法请看。
注意:网上都说同时要下载eclox.update_0.8.0.zip并解压安装,其实完全没必要,eclox.update_0.8.0只是版本的更新过程,里面包含的都是最新版本和历史版本插件,而我们需要的只是最新版本的,故不需要下载此压缩文件。
如果这两个步骤都完成后,重启eclipse之后,就可以发现在工具栏上多了一个@的图标,如下图所示,表示安装成功。
3. 在Eclipse中配置doxygen运行环境
工具栏上 windows-&preferences-&Doxygen, 点击Add,添加doxygen安装目录中的bin目录,如下图所示:
到此doxygen在Eclipse中的集成工作就完成了。
4. 使用Doxygen生成文档过程举例
4.1 自动生成工程的doxygen文件
首先选择你要生成文档的工程,
然后File-&New-&others....,出现下面的选择框,选择Other中的Doxyfile。
点击next,配置Doxygen,定好文件的名字,点击Finish就OK了。
当然到此还没结束,最重要的一步还没完成,就是自动生成doxygen文件后需要我们自己配置各个参数和选项。
4.2 配置doxygen文件参数和选项
配置Doxygen文件参数也有三种方式:
4.2.1 使用Eclipse中集成的doxygen editor进行修改
在Eclipse中打开刚刚自动生成的doxygen文件,默认的配置如下:
比如在Eclipse中我用的配置选项如下:
建议大家如果不理解各个选项,可以尝试每个选项的生成效果,以找出自己最想要的文档&#26684;式。
4.2.2 使用Doxygen安装程序自带的GUI工具
找到Doxygen的安装目录下的bin目录里,如下图所示可以看到有个GUI工具:
打开后如下图所示:
与Eclipse中大同小异,各个参数选项慢慢琢磨吧,很简单。
4.2.3 直接用文本编辑器进行修改
针对doxyfile可直接用文本编辑器进行编辑,建议用Notepad&#43;&#43;或写字板等打开,不要用无排版的记事本。
主要有以下内容需关注:
&OUTPUT_DIRECTORY&:必须在这里提供一个目录名,例如 /home/user1/documentation,这个目录是放置生成的文档文件的位置。如果提供一个不存在的目录名,doxygen 会以这个名称创建具有适当用户权限的目录。&INPUT&:这个标记创建一个以空&#26684;分隔的所有目录的列表,这个列表包含需要生成文档的
C/C&#43;&#43; 源代码文件和头文件。如果项目只有一个源代码根目录,其中有多个子目录,那么只需指定根目录并把&RECURSIVE& 标记设置为Yes。&FILE_PATTERNS&:在默认情况下,doxygen 会搜索具有典型 C/C&#43;&#43; 扩展名的文件,比如.c、.cc、.cpp、.h 和.hpp。如果&FILE_PATTERNS& 标记没有相关联的&#20540;,doxygen 就会这样做。如果源代码文件采用不同的命名约定,就应该相应地更新这个标记。例如,如果项目使用.c86 作为C
文件扩展名,就应该在&FILE_PATTERNS& 标记中添加这个扩展名。&RECURSIVE&:如果源代码层次结构是嵌套的,而且需要为所有层次上的 C/C&#43;&#43; 文件生成文档,就把这个标记设置为Yes。例如,请考虑源代码根目录层次结构 /home/user1/project/kernel,其中有 /home/user1/project/kernel/vmm 和 /home/user1/project/kernel/asm 等子目录。如果这个标记设置为Yes,doxygen
就会递归地搜索整个层次结构并提取信息。&EXTRACT_ALL&:这个标记告诉 doxygen,即使各个类或函数没有文档,也要提取信息。必须把这个标记设置为Yes。&EXTRACT_PRIVATE&:把这个标记设置为 Yes。否则,文档不包含类的私有数据成员。&EXTRACT_STATIC&:把这个标记设置为 Yes。否则,文档不包含文件的静态成员(函数和变量)。&OUTPUT_LANGUAGE&:默认 =&English,文档语言(自动生成的文字部分),可以指定为Chinese。&DOXYFILE_ENCODING&:默认 =&UTF-8,默认编码为UTF-8,这样可以支持中文。&PROJECT_NAME&:项目名称,多个单词需要使用引号(“”)。&PROJECT_NUMBER&:项目版本号。
4.3 运行doxygen文件生成最后的文档
配置完成后在Eclipse中点击@插件按钮选择doxygen配置文件即可生成文档了。
可以在控制台看到生成详细过程,如果有如何配置错误如指定的路径或文件不存在等,都会给出提示,按要求重新配置即可。
打开生成文档里的index.html(如果是html&#26684;式),在浏览器查看,点击各个选项查看效果如下:
查看某个函数的界面:
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
以前的博客,虽已不再更新,但某些文章也值得参考滴:
生活、读书、感悟等非技术性文章,请移步至我的简书博客:
收藏了很多读书和电影条目,基本上都有自己的评鉴语:
微信学习公众平台-媛媛推荐
微信号:programer-idea
名称:程序媛想事儿
访问:507536次
积分:8004
积分:8004
排名:第1719名
原创:123篇
转载:14篇
评论:1013条
阅读:34188
文章:16篇
阅读:77696
阅读:30701
(1)(1)(2)(3)(9)(5)(18)(4)(8)(4)(4)(5)(1)(7)(4)(22)(14)(10)(5)(11)(2)(1)[原]eclipse使用ModelGoon插件自动生成java类的UML图
1、ModelGoon介绍
ModelGoon 是一个
Eclipse插件,能将Eclipse中现有的java类生成类图,可以进行Java
包的依赖分析,基于UML图进行模型设计,以及逆向工程(即从已有源代码生成类图)。
2、ModelGoon下载与安装
本示例的环境为:Windows 7_X64, Eclipse Juno, JDK1.7,
JRE1.7。待安装的ModelGoon版本为:ModelGoon-4.4.1-site.zip。下载到电脑,最好保存在&\eclipse\&文件夹下面。
打开eclipse,选择help--&install new
software。点击work
with--&Add--&Archive,选择已经下载的ModelGoon-4.4.1-site.zip,一路next或者accept,最后选择finish完成安装。(有的时候安装过程会比较长,还可能出现类似卡死的现象,长时间没有任何进度。这时候不要取消,耐心等待就好)。
3、ModelGoon使用
ModelGoon安装成功后,重新启动eclipse。在eclipse中,选择已经打开的Java或者Android工程。在合适的文件夹或者直接在工程根目录中,File--&new--&other--&ModelGoon
Diagrams,如下图所示:
3.1 Class Diagram
Diagram,在自己Java工程中创建一个后缀是.mgc的文件,用它来生成类图。用法很简单,直接把Java类拖拽到这个文件视图中,就会自动生成UML类图。
3.2 Interaction Diagram
选择Interaction
Diagram,在自己Java工程中创建一个后缀是.mgi的文件,可以看出类之间的依赖关系,具体到方法,如下图所示:
3.3 Package Diagram
选择Package
Diagram,在自己Java工程中创建一个后缀是.mgp的文件,可以检查出包的依赖关系,如下图所示:
3.4 最终的工程文件结构效果如下图所示:
(另附官网ModelGoon-4.4.1-site.zip下载方法链接,有时候非常卡顿:http://marketplace.eclipse.org/content/modelgoon-uml4java)。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。如何向基于eclipse的工具添加新的插件?_百度知道soot 学习笔记(3)
【1】Using the Soot Eclipse plugin
&&&&&& 参考URL: &http://www.bodden.de//soot-eclipse-plugin-tutorial/
&&&&&& 把测试例按照文档都测试一以便,有一个大概印象即可。可以熟悉常用的按钮选项,通过选项猜测soot所完成的功能。
【2】Implementing an intra-procedural data-flow analysis in Soot
&&&&&& 参考URL:& www.bodden.de//soot-intra/
(1) &&& An intra-procedural data-flow analysis operates on a control-flow graph – called UnitGraph in Soot – for a single method. A unit graph contains statements as nodes, and there is an edge between two nodes if control can flow from the statement represented
by the source node to the statement represented by the target node.
(2)Forward, backward or branched?
(3)A: The abstraction type. Oftentimes people use sets or maps as their abstraction but in general you can use anything you like.Beware though, that your abstraction type must implement equals(..) and hashCode() correctly, so that Soot can
determine when a fixed point has been reached!
(4)Between the super constructor call and the call to doAnalysis() you can set up your own analysis data structures.
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:27692次
排名:千里之外
原创:73篇
(1)(1)(1)(1)(4)(4)(3)(1)(2)(1)(13)(11)(16)(1)(2)(2)(12)(3)(1)(1)Eclipse也用了很久,但是都没有怎么去研究过怎么安装插件,今天正好在自己新买的本上试了一下。现在将心得写下,以供参考。目前安装Eclipse插件主要有以下三种方式:
在线安装:
以TestNG的安装为例来阐述其安装过程。
第一步:点击菜单栏中&Help&菜单,在下拉列中选择&Install&New&Software...&.此时会弹出&install&的安装框。
第二步:在弹出的&install&框,选择之前已经建立好的site,如果没有建立好,则可以点击&Add&按钮,弹出一个添加site的对话框,在该框中的Name属性后面给该site起一个别名,在location属性后面输入该插件所在的网络位置(该位置一般都会在插件的官方网站上给一个地址,直接copy过来就行。)。
第三步:点击OK。系统会自动地将testNG给load出来。然后选中,点击&next&。逐步完成即可。
离线侵入式安装:
也就是将插件下载下来,解压缩后,会看见features和plugins两个文件夹,将这两个文件夹中的所有内容相应地拷贝到eclipse的features和plugins文件夹下面,重启eclipse即可。如果没有这个两个文件夹,那说明所给的插件本身属于plugin,所以只需要将该插件解压缩后放在plugins下面即可。
此处以WTP为例:
解压缩后会有features和plugins两个文件夹。那么直接将这两个文件夹中的内容分别copy到eclipse安装目录下面的features和plugins里面。然后重启eclipse即可。
以TestNG为例,只需将下载下来的插件jar包Copy到plugins下面即可。
注:这种方式不太好,因为当你要去卸载或者更新某个插件的时候,去features和plugins里面找某个插件会非常的麻烦。
离线链式安装:
在eclipse的安装目录下面,建立一个links的文件夹,在该文件夹下面创建一个以插件名命名的link文件,在该文件中输入以下键值对:path=&插件所在的绝对路径或插件所在的相对路径&。
此处还是以WTP为例:
1.创建以下目录来存放插件:D:\myplugins.然后在该目录下创建一个WTP目录,作为插件目录。之后将插件中的plugins和feature两个目录拷贝到WTP目录下面。此时目录结构为:
D:\myplugins\WTP:
& &&&&&&&&&&&Features
&&&&&&&&&&&& Plugins
2.创建link文件:在上述的links文件夹下面创建一个link文件,例如wtp.link.该文件的内容只有一个键值对:
Path=&D:/myplugins/WTP&或&D:\\myplugins\\WTP&
(1)路径一定不能是:&D:/myplugins/WTP&。因为&\&会和后面的字母组合成转义字符。一个典型的例子就是&D:/myplugins/tomcat&,&/&会与&t&结合,变成tab,所以路径实际上就会变成&D:/myplugins omcat&。
(2)如果是更新一个软件插件或者插件装了之后不起作用,则先要去eclipse的根目录下面configuration下面删除org.eclipse.update,该包的作用是描述当前使用插件的情况,删除了之后,在重启eclipse的时候会重新扫描所有的插件,重新生成一个新的org.eclipse.update包已经包内部的xml文件。
(3)eclipse在加载过程中先找eclipse本身的plugins和features两个包,然后扫描links文件夹下面每一个文件里所连接到的路径下的plugins和features包,去这些包里面加载文件。所以要求在插件目录下面一定要有plugins或者是plugins和features两个目录。此处要注意像之前的testNG插件只是一个jar包,那么此时我们需要手动地在插件路径下面创建一个plugins,并将该jar包Copy到该plugins里面。
(4)在安装的过程中如果出现什么问题,eclipse在启动的时候会在configuration目录下生成一个以时间戳为名字的log文件,可以查看错误信息。要注意该文件会在有错误的时候出现,而且会在eclipse启动好了之后自动删除掉。
(5)有时候为了使路径更加简单,我们采用相对路径。而相对路径指的是相对于links目录的路径。例如,我们会将myplugins目录移到eclipse的目录下面,和links同级,此时的path就可以写成:path=&myplugins/WTP&。
阅读(...) 评论()

我要回帖

更多关于 python call graph 的文章

 

随机推荐