DeepCode是一种云服务,它使用机器学习来分析代码库中的安全缺陷和潜在错误 , 现在可以分析C和C ++代码 。
通过分析数千个开源项目的培训,DeepCode为代码托管平台或本地存储库中的项目提供反馈。 DeepCode的创建者声称,与传统的代码分析工具相比,它提供了更好,更详细的反馈,因为它可以在上下文中分析代码,而不仅仅是文本,还可以作为运行软件。
[ 同样在InfoWorld上:为什么C编程语言仍会统治 ]
软件中发现的大多数漏洞都在C或C ++代码库中出现。 尽管这两种语言功能强大,但它们几乎不能避免开发人员的错误,并且这些语言的较新版本被迫保留向后兼容性,因此仍然很脆弱。

DeepCode检测到的代码缺陷的示例。
DeepCode的问题知识库包含C和C ++以及其他语言中的许多常见问题:样式问题,资源泄漏,内存分配问题,日期处理问题以及语言版本之间的不兼容性。
在对Linux内核的分析中 ,DeepCode在C代码库中发现了许多常见问题,包括从命令行参数或环境变量传递来的未经消毒的参数,释放后使用问题以及缺少对空指针的检查。 C代码中的其他问题更加微妙,例如临时文件的创建不安全,或者某些指令可能在编译时被优化掉而无法达到预期的效果。
[ 同样在InfoWorld上:您正在编写出色代码的11个标志 ]
最初启动时,DeepCode支持Java,JavaScript,TypeScript和Python,但有关C,C ++和其他语言的计划已经提出。 根据宣布C / C ++支持的博客文章,由于C / C ++低级功能的复杂性,为C和C ++添加代码分析需要花费三个月的时间。