AI-代码扫描工具

AI-代码扫描工具

1、目的

一个团队或者个人,会因为自己所处位置不同,都有封装过的函数和产品代码业务代码编写规则。本文基于以上痛点,实现代码扫描功能,减轻开发、审核、测试的工作量,提升代码质量。同时用户可以自行添加相应的个性化规则,实现自己的代码管理。扫描和生成检查报告。详细的使用说明见文档和代码。

2、源码位置

源码地址

3、详细介绍

C/C++ 代码审核工具

一个可扩展的 C/C++ 代码静态分析工具,用于检测代码中的内存泄漏、死锁、死循环、性能问题等。

功能特性

  • 内存管理检测: malloc/new 后未释放、双重释放、野指针等
  • 并发/死锁检测: 嵌套锁、未释放的互斥锁、std::thread 资源泄漏等
  • 循环效率检测: 死循环、循环内重复计算、嵌套循环性能等
  • 性能问题检测: 字符串频繁拼接、不必要的拷贝、循环内定义对象等
  • 业务逻辑检测: 未检查返回值、Magic Number、敏感信息打印等
  • 函数使用范例: fopen、memcpy、strncpy 等函数的正确用法

安装

bash 复制代码
pip install pyyaml chardet

使用方法

扫描文件或目录

bash 复制代码
# 扫描整个项目
python main.py scan /path/to/project

# 扫描指定文件
python main.py scan /path/to/file.cpp

# 不递归扫描子目录
python main.py scan /path/to/project --no-recursive

指定规则

bash 复制代码
# 只启用特定规则类别
python main.py scan /path/to/project --rules memory,deadlock

# 按严重程度过滤
python main.py scan /path/to/project --severity Critical Warning

输出格式

bash 复制代码
# 彩色终端输出 (默认)
python main.py scan /path/to/project --format color

# JSON 输出
python main.py scan /path/to/project --format json --output report.json

# 纯文本输出
python main.py scan /path/to/project --format text --output report.txt

# 生成 HTML 报告
python main.py scan /path/to/project --format html --output report.html

其他命令

bash 复制代码
# 列出所有规则
python main.py list-rules

# 按类别筛选规则
python main.py list-rules --category memory

# 添加自定义规则
python main.py add-rule /path/to/your_rule.yaml

添加自定义规则

rules/custom/ 目录下创建 YAML 规则文件:

yaml 复制代码
- id: CUSTOM001
  name: "自定义规则名称"
  category: business
  severity: Warning
  description: "规则描述"
  patterns:
    - pattern: 'your_regex_pattern'
      description: "匹配描述"
      suggestion: "修复建议"

规则说明

类别 说明
memory 内存管理问题
deadlock 并发/死锁问题
loop 循环效率问题
performance 性能问题
business 业务逻辑问题
example 函数使用范例
严重程度 说明
Critical 严重问题,可能导致崩溃或内存泄漏
Warning 警告,需要关注的问题
Info 信息性建议

项目结构

复制代码
code_auditor/
├── main.py                 # 入口文件
├── config.yaml             # 配置文件
├── auditor/                # 核心模块
│   ├── scanner.py          # 文件扫描
│   ├── analyzer.py         # 代码分析
│   ├── rule_engine.py      # 规则引擎
│   └── reporter.py         # 报告生成
├── rules/                  # 规则定义
│   ├── memory_leak.yaml    # 内存规则
│   ├── deadlock.yaml       # 死锁规则
│   ├── dead_loop.yaml      # 循环规则
│   ├── performance.yaml    # 性能规则
│   ├── business.yaml       # 业务规则
│   └── examples.yaml       # 函数范例
└── tests/                  # 测试文件

扩展开发

可以通过以下方式扩展工具功能:

  1. 添加新规则 : 在 rules/ 目录下创建新的 YAML 文件
  2. 扩展分析器 : 修改 auditor/analyzer.py 添加更复杂的分析逻辑
  3. 添加输出格式 : 修改 auditor/reporter.py 添加新的报告格式

4、效果图

相关推荐
数据学徒工1 天前
20-Decisions Dashboard:仪表板从入门到实战
低代码·自动化·代码规范·敏捷流程
在西安放羊的牛油果3 天前
Connect 源码深度解析
前端·架构·代码规范
Freak嵌入式3 天前
小作坊 GitHub 协作闭环:fork-sync-dev-pr-merge 实战指南
python·github·远程工作·代码规范·micropython·协作
高志小鹏鹏4 天前
告别“修复 bug”:让别人一眼看懂你的 Commit
git·github·代码规范
来自远方的老作者5 天前
第7章 运算符-7.5 比较运算符
开发语言·数据结构·python·算法·代码规范·比较运算符
Patrick_Wilson5 天前
你的 MR 超过 500 行了吗?——大型代码合并请求拆分实战指南
前端·代码规范·前端工程化
Gale2World5 天前
【进阶范式】多智能体协同:Superpowers 与子代理驱动开发
人工智能·代码规范
数据学徒工9 天前
17-Decisions Report:计算列+筛选器全攻略
低代码·自动化·代码规范·敏捷流程·报告
梦梦代码精9 天前
智能体编排 + MCP + 知识库,开源可商用!
人工智能·神经网络·gitee·开源·github·代码规范