【问题标题】:Backward slice generation for a java filejava文件的反向切片生成
【发布时间】:2014-08-13 08:36:36
【问题描述】:

我有一个 java 文件,我想获取对特定行的结果有影响的所有行(反向切片生成)。我知道解决方案,但是否有任何 java 代码可以做到这一点?

以下面的代码为例:

System.out.println("Start")
Random r = new Random();
int i = r.nextInt(10);
int n = 0;
if(i<8)
{
    n = 1;
    System.out.println("In if");
}
int j = n * i;

当我为第 10 行运行它时,需要一个能找到以下行的代码:

Random r = new Random();
int i = r.nextInt(10);
int n = 0;
if(i<8)
{
    n = 1;
}
int j = n * i;

【问题讨论】:

    标签: java program-slicing


    【解决方案1】:

    似乎讨论理论方法的学术论文多于实际实现。 (特别是在 Java 中)

    您可以尝试以下选项之一:

    分析单线程程序:

    Java Slicer 来自 hammacher(@github)。据我记得,在您从程序中创建跟踪后,它会为您提供一个 java 字节码切片。

    还可以查看 IBM Wala Slicer

    分析多线程程序:

    问题在于复杂性增加,尤其是在分析多线程程序时。 我认为目前唯一支持这个的是Indus 项目。他们还提供了一个名为 Kaveri 的 Eclipse 插件,但您必须在 Eclipse 3.1.2 中使用它

    但是,您的代码必须符合 Java 2(J2SE 1.4.2)。见Java Support

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-13
      • 2020-09-27
      • 1970-01-01
      • 2017-04-15
      • 1970-01-01
      • 2021-02-28
      • 2023-04-08
      相关资源
      最近更新 更多