- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
soot的java程序控制流分析及图形化输出-计算机系统应用
计 算 机 系 统 应 用 2009 年 第 10 期
①
Soot 的Java 程序控制流分析及图形化输出
Java Program Control Flow Analysis and Graphic Output of Soot
李远玲 陈 华 刘 丽 (北京系统工程研究所 北京 100101)
摘 要: Soot 是一个Java 编译优化框架,可以利用它实现Java 字节码程序的数据流分析和控制流分析。在深
入分析Soot 控制流生成机制的基础上,详细叙述了利用Soot 分析Java 类的控制流并生成其控制流图的方法和
过程,同时提出了将Soot 生成的抽象的控制流图进行图形化输出的方法。
关键词: Jav a Soot 控制流分析 DOT 语言 图形化输出
程序分析具有广泛的应用。为了实现程序优化, 可以作为一个开发 Java 字节码优化和变换的框架。图
编译器必须能够刻画出程序的控制流及其数据操纵特 1 是 Soot 的使用模式。
征,以便优化执行流程、删除无用代码,从而提高运
行效率。另一方面,为了对程序进行安全分析,寻找
其薄弱环节,需要确定程序中与数据处理有关的全局
信息,也就是对程序进行数据流分析。控制流分析是
数据流分析的基础,通过生成程序的控制流图,可以
全面了解程序中每一个过程内的控制流层次结构以及
过程间的全局调用关系。
Soot 是 McGill 大学的 Sable 研究小组自 1996年
开始开发的Java 字节码分析工具。它完全用Java 实现, 图 1 Soot 的使用模式
必威体育精装版版本是 2.3.0 版。Soot 提供了多种字节码分析和
变换功能,利用它可以很方便地进行程序的分析、编译 如图 1 所示,Soot 的输入是多源(如 javac 编译
优化和变换。通过 Soot 提供的过程内和过程间的分析 器)产生的字节码。采用 Soot 进行代码的变换和优化,
与优化支持,用户可以很方便地获得每个方法的控制流 产生新的已被优化的类文件。优化后的字节码程序可
图和各个折衷级别上的全局调用图。本文深入分析了 以在任何标准的Java 虚拟机上执行。
Soot 提供的过程内控制流图的生成机制,利用其获取 Soot 框架提供了一组中间表示法,其分析和变换
被分析软件的控制流信息,并将该信息以图形化的形式 建立在这些中间表示法之上;另外还提供了一组直接
显示出来。Soot 提供的工具包将控制流信息转换成 用于优化Java 字节码的API。Soot 的扩展机制以Pack
DOT 语言表示的形式。DOT 语言是一种通用的结构化 为中心,一个 Pack 包括若干个变换。用
文档评论(0)