pin 相关论文Statically-Directed Dynamic Automated Test Generation 三

来源:互联网 发布:java输入异常处理 编辑:程序博客网 时间:2024/06/05 23:04

再打开论文看abstract domain,AHA MOMENT还是没有出现,不得已把它的参考论文看了一下,Strided Interval参考的是Intermediate— Representation From Low Level Code,Thomas Reps Gogul Balakrishnan Junghee Lim,论文开始就大赞executable instrumentation,还指出对源程序的检测会出现What You See Is Not What You Execute,不过论文提供的方法是基于几个我不知道的工具,自动忽略了,看了个大概意思,找到了一些有用信息:

T:有四个相邻排列的4字节变量l1、l2、l3、l4,假设编译器给l1和l3生成了明确的入口,只给l2和l4间接地入口,他们的工具只考虑到l1和l3的明确入口,因此它定义了两个8字节抽象区域(abstract locations or a-locs)l12和l34,l12跨越了l1和l2,l34跨越了l3和l4,因为对32位的机器来说,vlaue-sets只表示达到32字节的地址和整数值,VSA将不能表示l12和l34中的地址和数值。从l12和l34中读写数据时就要谨慎,而且VSA会在任何程序点中报告l12和l34包含T(任何可能的地址和数值)。从另一方面来说,如果把l1,l2,l3和l4当做4字节的a-locs使用,VSA就能提供更精确的(non-T)value-sets。说了这么多,其实T就表示任意的地址或数值。

VSA:Value-Set Analysis,VSA的目的是在每一个程序点确定寄存器和内存中地址和数值的上近似。

Strided-Interval:这篇论文定义的Strided-Interval与Statically-Directed Dynamic Automated Test Generation 中的有所不用,它的定义与bit数有关,s[lb,ub],表示大小在-2的k次方和-2的k次方-1之间的s的为整数倍的整数。另外,还定义了si(Strided-Interval)的运算:如+、-、|、~,要注意的是在进行这些运算的时候可能会出现向上或向下溢出的情况。

原创粉丝点击