随笔分类 -  Soot学习笔记

[Soot学习笔记][7]Soot Instrument教程学习(More on profiling)
摘要:12月中旬的时候又按照页面:http://www.sable.mcgill.ca/soot/tutorial/index.html中的教程More on profiling,继续对Soot的Instrumentation功能学习。上面这个文档中已经把基本内容解释得很清楚了,我这里就简单总结一下。首先,假设要分析的字节码文件对应的源代码文件是:TestInvoke.javaclass TestInvoke{ private static int calls=0; public static void main (String[] args){ for (int i=0; i<10; i++ 阅读全文

posted @ 2012-01-04 15:43 qysh123 阅读(2279) 评论(0) 推荐(0)

[Soot学习笔记][6]一点instrumentation的知识
摘要:今天又结合这里:http://www.sable.mcgill.ca/soot/tutorial/index.html提供的文档,主要学习了Using Soot for profiling: developing a goto Instrumenter和More on profiling两个文档,其实这两个文档也学得不是很懂。但是想记录一点东西:第一篇文档对应的例子是:http://www.sable.mcgill.ca/soot/tutorial/profiler/Main.java下下来以后看到有这样一行代码:PackManager.v().getPack("jtp") 阅读全文

posted @ 2011-12-16 22:48 qysh123 阅读(1252) 评论(0) 推荐(0)

[Soot学习笔记][5]Soot依赖的两个框架
摘要:在Soot的下载页面:http://www.sable.mcgill.ca/soot/soot_download.html中我们可以看到,Soot实际上是依赖于两个框架:Jasmin和Polyglot。对于这两个框架(或软件),我之前不是特别了解,但是在很多地方都可以看到Polyglot,例如,abc(The AspectBench Compiler for AspectJ)就是基于Soot和Polyglot的(怎么这些框架还循环调用?)今天抽了些时间简单搜索了一下,找到了上面两个框架的主页,了解到:前者最早是基于这本书:Jon Meyer. Java Virtual Machine. O&# 阅读全文

posted @ 2011-12-08 23:26 qysh123 阅读(1380) 评论(0) 推荐(0)

[Soot学习笔记][4]使用Soot对源代码进行Null Pointer Analysis
摘要:今天又回顾了一下这篇文档:A Survivor's Guide to Java Program Analysis with Soot中介绍的内容,这个文档第20页介绍了一些使用Soot进行最简单分析的方法,这里把这个章节的第一部分翻译成中文,也算是加深印象吧。安装好Soot的Eclipse插件后,在需要分析的源代码上点击右键——“Soot”——“Process Source File”——“Run Soot”,在弹出的对话框左侧列表中选择“Output Options”——在右侧中间的“Output Format”复选框中选择“Jimple File”,然后,在左侧列表中选择“Phas 阅读全文

posted @ 2011-10-28 23:15 qysh123 阅读(1915) 评论(5) 推荐(0)

[Soot学习笔记][3]通过Soot API生成Hello World程序
摘要:周末的时候,抽时间继续学习了一下Soot。主要是看这个页面:http://www.sable.mcgill.ca/soot/tutorial/index.html中第二栏“Using Soot as a Compiler Framework”中的最基础的教程:Creating a Class File from Scratch,这个教程的PDF文件可以点击此处下载。通过昨天的学习,明白了这个教程的意义,是通过手动调用Soot API生成Hello World程序这种方式来了解基于Soot框架的最基本编程方法,熟悉Soot中Scene,SootClass等类的基本使用方法。下面以Soot 2.4 阅读全文

posted @ 2011-09-26 23:36 qysh123 阅读(2670) 评论(0) 推荐(0)

基于Soot和temiflex对Dacapo数据集进行静态分析
摘要:今天晚上参考并学习了Eric Bodden的一篇博文,主要讲用temiflex和Soot来对Dacapo数据集进行静态分析,具体请参考:http://code.google.com/p/tamiflex/wiki/DaCapoAndSoot这篇文章中已经对基本的步骤讲得很清楚,但几个命令行需要进行略微的修改,这里也算是给大家提供方便吧。假设我们使用的poa和pia的版本分别是:poa-1.1.1.jar 和 pia-1.1.jar那么需要正确运行上面URL中的例子,只需要控制台下输入三个命令:java -javaagent:poa-1.1.1.jar=out/avrora-small -jar 阅读全文

posted @ 2011-08-26 22:29 qysh123 阅读(1580) 评论(3) 推荐(0)

Soot为什么经常被用作Instrumentation的Framework?
摘要:这篇博客的题目是个疑问句,因为我确实不清楚为什么。从Soot的官网:http://www.sable.mcgill.ca/soot/并不能看出其可以作为Instrumentation的Framework,只是介绍是一个优化的Framework。今天抽时间学习了这篇最初的文章:R. Vall, E-Rai, P. Co, E. Gagnon, L. Hendren, P. Lam, and V. Sundaresan, "Soot - a Java bytecode optimization framework," in Proceedings of the 1999 con 阅读全文

posted @ 2011-07-15 22:22 qysh123 阅读(1577) 评论(0) 推荐(0)

导航