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、效果图

相关推荐
AI砖家15 小时前
Claude Code 跳过确认完全指南:让 AI 自己完成开发任务
前端·人工智能·python·ai编程·代码规范
梦梦代码精16 小时前
实拆likeshop上门家政系统:ThinkPHP二开体验、自动派单
代码规范
星栈2 天前
别再满项目乱丢 String:我开始给领域错误分层了
后端·代码规范
万少2 天前
Claude Code 任务结束会自己喊你:一个 Stop Hook 搞定提示音
前端·后端·代码规范
Patrick_Wilson3 天前
前端解析接口数据,到底该不该信任后端?聊聊「防御性编程」与「类型契约」的边界
架构·typescript·代码规范
Dante丶3 天前
Codex Desktop 不断 Reconnecting 的代理环境变量处理
前端·后端·代码规范
bonechips3 天前
告别 var,拥抱 let 和 const:JavaScript 变量声明完全指南
javascript·代码规范
梵得儿SHI5 天前
Vue 项目实战与性能优化:工程化与协作全指南(规范 + 配置 + 协作 + 文档)
前端·vue.js·代码规范·eslint·团队协作·前端工程化·前端架构
Gavin-Wang5 天前
swift 代码规范
蓝桥杯·swift·代码规范