【记录】软件自动修复工具Jaid配置、调试、运行及相关问题的解决方案

1. 前言

创作开始时间:2022年11月18日20:50:38

如题,本文记录一下软件自动修复工具Jaid配置、调试、运行及相关问题的解决方案。

2. Jaid原论文

  • 【ASE’17】Contract-Based Program Repair without the Contracts
  • 【TSE’20】Contract-Based Program Repair without The Contracts: An Extended Study

3. 环境

  • Ubuntu 16
  • Eclipse Version: 2019-12 (4.14.0)
  • JDK 8

4. 配置

1)先克隆:

git clone https://bitbucket.org/maxpei/jaid.git

2)打开Eclipse,按照Gradle项目导入Jaid。

5. 调试

1)程序入口在:

2)调试参数:

--JaidSettingFile /mnt/data/jaid/example/af_test/mac_project.properties

3)需要将jaid/example/af_test/mac_project.properties文件修改一下,主要是适配一下本地环境:

JDKDir = /home/apr/env/jdk1.8.0_202
ProjectRootDir = /mnt/data/jaid/example/af_test

4)然后在Eclipse中调试即可。

6. 碰到的问题

一开始调试碰到了这样的问题:

java.util.ServiceConfigurationError: com.sun.jdi.connect.Connector: Provider com.sun.tools.jdi.SharedMemoryAttachingConnector could not be instantiated
java.util.ServiceConfigurationError: com.sun.jdi.connect.Connector: Provider com.sun.tools.jdi.SharedMemoryListeningConnector could not be instantiated
xxx
然后显示没有反例。

不得其解,毕竟这个项目的代码模式和TBar,SimFix的不太像,所以一下搞不清原因在哪。

输出显示没有反例,应该是执行测试的问题。

然后调试找到测试执行的代码:
在这里插入图片描述

调试发现launchingConnector里面的变量JDK竟然是JDK 11,而不是JDK8.
打开。找到问题了!

赶紧把调试configuration的JDK换一下:
在这里插入图片描述

就可以成功运行了!

7. 一些发现

1)对表达式的收集,两类:basic,extended:
在这里插入图片描述

8. 小结

后续再补充吧。

创作结束时间:2022年11月19日09:46:23

9. 参考文献

猜你喜欢

转载自blog.csdn.net/weixin_39278265/article/details/127929479