栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ControlFlag工具安装

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ControlFlag工具安装

一、背景:

英特尔近日开源了机器编程工具ControlFlag,这是一种使用机器学习来检测计算机代码问题的工具。理想情况下,ControlFlag的应用可以减少调试应用程序和软件所需的时间。在测试中,英特尔的机器编程研究团队表示,ControlFlag在专有的“生产质量(production-quality)”软件中发现了数百个缺陷,证明了它的实用性。

下文是对ControlFlag的搭建和使用方法做简要介绍,并列举上在搭建过程中作为小菜在过程中踩过的大大小小的坑。由于不懂专业的机器学习知识,所以目前的介绍还在操作上,如果有大牛能更深的理解ControlFlag的使用,欢迎和我多多沟通、共同学习~

二、详细原理:

详细可参照github上原文:https://github.com/IntelLabs/control-flag

三、搭建步骤:

ControlFlag可以在Linux和MacOS上构建。本文是在虚拟机上实现搭建和使用。我使用的VirtualBox版本是:VirtualBox-6.0.24-139119-Win,iso镜像是:CentOS-8.4.2105-x86_64-dvd1。

(1)在VirtualBox上安装centos系统

Oracle VirtualBox安装CentOS 8 - sword88 - 博客园

注:在搭建环境中虚拟机上不能使用鼠标的问题解决方式如下:

https://jingyan.baidu.com/article/a3a3f8111a07fa8da3eb8a67.html

(2)安装wget、cmake、make、 c++17、python3.6.5、pip等,基本是yum或其它常用安装方式安装,不再赘述。

其中在安装c++17:https://www.jianshu.com/p/e9bfdc040dc1时,碰到无法安装centos-release-scl的问题,可通过下列方式解决:

rpm -ivh https://cbs.centos.org/kojifiles/packages/centos-release-scl-rh/2/3.el7.centos/noarch/centos-release-scl-rh-2-3.el7.centos.noarch.rpm

rpm -ivh https://cbs.centos.org/kojifiles/packages/centos-release-scl/2/3.el7.centos/noarch/centos-release-scl-2-3.el7.centos.noarch.rpm

注:方法摘自:https://segmentfault.com/a/1190000038442672

(3)github上下载工程后:

$ cd control-flag

$ cmake .

$ make -j

$ make test

(4).选择数据集,根据磁盘大小和内存要求,本文选择的是中等数据集。

在上图此步骤中,我没有用gdown命令来下载文件,因为在下载执行过程中总是报错,所以用的是直接在idea上用Alibaba Cloud Viewh上传解压后的文件,上传至虚拟机中。

(5)下载任意C项目文件,并执行下述命令执行检查:

执行后,会在目标目录中生成thread_0.log

通过grep "Potential anomaly" -C 5 *.log查看部分日志如下,其中Potential anomaly标明的即为可能存在异常的代码,日志中行等信息均有标记:

(6)目前ControlFlag还不支持C以外的语言类型,在github上开发者也有回答,python、java等语言可能在几个月后会支持。到时我也会进一步关注,期待ControlFlag在我们的实际java项目中会有好的使用效果。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/424099.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号