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

news2025/7/19 21:00:25

文章目录

  • 1. 前言
  • 2. Jaid原论文
  • 3. 环境
  • 4. 配置
  • 5. 调试
  • 6. 碰到的问题
  • 7. 一些发现
  • 8. 小结
  • 9. 参考文献

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. 参考文献

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/18147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jenkins+Docker+SVN实现SpringBoot项目半自动化部署

起因:入职后公司需要的技能,全部项目都使用的JenkinsDocker部署 Jenkins详细教程:知乎大佬写的文章 Docker详细教程:一个大佬的博客 SVN使用教程:一个大佬的博客 深入了解Jenkins、Docker、SVN,去上面三个大…

图书管理系统【java】

目录 🥇1.设计背景 🔎2.设计思路 🔑3.book包 📗3.1 Book类的实现 📕3.2 BookList类的实现(书架) 🔑4.user包 📙4.1 User类的实现 📒4.2 AdminUser(管理员&#x…

MySQL导出csv数据文件

之前使用MySQL导出过一次线上数据,当时解决了乱码和数据没有正常分隔的问题。 参见这篇文章: 记一次“曲折“的MySQL数据导出 前几个月换了工作电脑,这几天又需要导出几十万的线上数据,在导出过程中还是出现了一些问题,再记录一…

OpenWrt 固件编译教程

一、编译环境准备 编译平台 阿里云 Ubuntu 20.04.5 LTS 安装编译环境依赖 sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion f…

ICME 会议介绍

官网翻译来的,具体内容还是看官网:IEEE ICME23 Author Information and Submission Instructions 目录 常会和特别会议 研讨会 行业/应用文件 演示 一般信息 示例文件、格式化指南和模板 电子论文提交 提交论文的分步说明 感兴趣的主题包括但不…

右键发送到菜单+批处理实现批量自动化为文件名添加统一的后缀

WinR打开运行,并输入shell:sendto,打开系统右键发送到菜单的所在文件夹。 新建记事本文档,修改文件名为公开.bat,编辑并保存如下内容: echo off :loop if not "%~1" "" (ren "%~1" &…

[附源码]SSM计算机毕业设计在线二手车交易信息管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Linux系统配置 Samba客户端

配置 Samba客户端 1.Windows 客户端访问 samba 共享 无论Samba共享服务是部署在Windows系统上,还是部署在Linux系统上,通过Windows系统进行访问时,其步骤和方法都是一样的。下面假设Samba共享服务部署在Linux系统上,并通过Wind…

11返场钜惠,格式转换、图片/视频压缩免费小技巧

📣 话不多说,直接上干货! 🔥 11返场钜惠,牛学长转码大师免费送!!!🔥 那么牛学长转码大师能帮助您些什么呢?一起看看吧~ 一、格式转换 作为一款专业的格式…

Redis集群部署的三种模式

一、Redis简介 Redis 是一款完全开源免费、遵守BSD协议的高性能(NOSQL)的key-value数据库。它使用ANSI C语言编写,支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis的使用场景有如下一些: 读写效率要…

计算机网络复习——第四章网络层

9月开始学习的一个月,I hope everthing be fine. 相关知识见,感觉比较容易入手 《计算机网络》(谢希仁)内容总结 | JavaGuide 重点知识: TCP/IP 协议中的网络层向上只提供简单灵活的,无连接的&#xff…

[附源码]SSM计算机毕业设计在线购物商城JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

C/C++多进程高并发框架分享【内附可执行源码注释完整】

文章目录🚀前言🍎源码分享🎂总结🚀前言 多进程高并发的设计的思想体现在:电脑物理CPU有多少个核(core)就创建多少个子进程,并且把各个子进程平均分配到各个核(core&…

【JavaSE】多态、抽象类

文章目录1. 向上转型2. 重写3. 多态4. 向下转型5. 抽象类1. 向上转型 我们来看看以下程序 class Animal {public String name;public int age;public void eat() {System.out.println("父类的方法");} } class Cat extends Animal {public String hire;public void…

Birdboot第六天 jar包 数据库

实际应用birdboot框架 1.BirdBoot导包 1.新建maven BirdBoot------pom替换 2.删掉static 和 Springboot里面写的(controller entity) rebuild之后把无用的导包都删掉 主启动类里面把main方法改为run方法 传参:类名和参数(复制sp…

动力节点索引优化解决方案学习笔记——索引介绍

1.索引介绍 1.1什么是MySQL的索引 MySQL官方对于索引的定义:索引是帮助MySQL高效获取数据的数据结构。 MySQL在存储数据之外,数据库系统中还维护着满足特定查找算法的数据结构,这些数据结构以某种引用(指向)表中的数据,这样我们…

决策树算法

目录 ​分类算法 决策树算法 外卖订餐决策树 分支处理 分类算法 分类算法是利用训练样本集获得分类函数即分类模型(分类器),从而实现将数据集中的样本划分到各个类中。分类模型通过学习训练样本中属性集与类别之间的潜在关系,并以此为依据对新样本属…

测试基础——数据库及数据库表的SQL操作(了解即可)

目录 1.数据库基础概念 2.SQL介绍 3.MySQL介绍 4.数据库连接工具Navicat 5.数据类型 6.约束 7.对数据库操作的SQL语句 7.1创建数据库 7.2使用/打开/切换数据库 7.3修改数据库 7.4删除数据库 7.5查看所有数据库 7.6数据库备份 8.数据库表操作的SQL语句 8.1创建数据…

VisualSFM的配置与使用 MeshLab的网格生成与纹理添加

前言 本实验环境如下: VisualSFM版本V0.5.26 MeshLab版本2022.02 操作系统Windows10,64bit 0 VisualSFM配置 0.1 下载 VisualSFM下载链接:VisualSFM : A Visual Structure from Motion System Cmvs-Pmvs下载链接:GitHub -…

[附源码]SSM计算机毕业设计郑工校园二手交易平台网站JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…