一款 PHP 静态分析工具,无需运行代码即可发现潜在错误。
BurtonQin/lockbud
面向 Rust 项目的静态分析工具,用于检测死锁、并发、内存错误及潜在 panic 位置。
- Star
- 590
- Fork
- 40
- 未关闭 Issue
- 7
- 最近提交
- 7天前
这是什么?
lockbud 是一款 Rust 静态分析工具,无需运行程序即可查找并发与内存类缺陷。它通过追踪锁守卫(lock guard)在调用图中的生命周期,发现可能导致死锁的 double-lock 与锁顺序冲突,同时支持原子性违背和 Condvar 误用的检测。内存检测器覆盖 use-after-free 和 invalid-free,另有独立模式用于报告可能的 panic 位置。
该工具基于 rustc 内部接口实现,必须使用与其匹配的 nightly 工具链运行,目前为 nightly-2026-02-07。它既可以通过脚本直接调用,也可以作为 cargo 子命令(cargo lockbud)使用,并提供 Docker 镜像,便于在 CI 中运行。锁类型支持 std::sync、parking_lot 和 spin 中的 Mutex 与 RwLock。
项目源自一篇发表于 TSE'24 的论文,研究真实 Rust 项目中的安全问题。作者提示,内存与 panic 检测器会对标准库和依赖产生较多误报,建议通过 -l 参数只关注自身 crate。
核心功能
- 01检测 std、parking_lot 和 spin 锁的 double-lock 与锁顺序冲突死锁。
- 02识别 use-after-free 和 invalid-free 内存错误。
- 03发现原子性违背与 Condvar 误用问题。
- 04列出代码中可能触发 panic 的位置。
- 05可作为独立脚本、cargo 子命令或 Docker 镜像运行。
适用场景
- 在发布前审查使用 Mutex 或 RwLock 的 Rust 代码,排查潜在死锁。
- 通过 cargo lockbud 或 Docker 镜像将死锁检查接入 CI 流水线。
- 研究 Rust 并发缺陷的静态检测方法。
快速上手
- 1
安装所需的 nightly 工具链组件
rustup +nightly-2026-02-07 component add rust-src rustc-dev llvm-tools-preview - 2
克隆仓库
git clone https://github.com/BurtonQin/lockbud.git - 3
进入项目目录
cd lockbud - 4
从本地源码安装 lockbud
cargo +nightly-2026-02-07 install --path .
使用前须知
- 必须使用其支持的精确 rustc nightly 版本构建,并且分析项目时也要使用相同版本。
- 死锁检测仅覆盖 std、parking_lot 和 spin 的 Mutex 与 RwLock 类型。
- 内存和 panic 检测器误报较多,panic 检测器几乎会报告所有 panic 位置。
- 指向分析不够精确,结果可能包含误报。
收录于专题
标签
常见问题
- lockbud 是什么?
- 面向 Rust 项目的静态分析工具,用于检测死锁、并发、内存错误及潜在 panic 位置。 lockbud 是一款 Rust 静态分析工具,无需运行程序即可查找并发与内存类缺陷。它通过追踪锁守卫(lock guard)在调用图中的生命周期,发现可能导致死锁的 double-lock 与锁顺序冲突,同时支持原子性违背和 Condvar 误用的检测。内存检测器覆盖 use-after-free 和 invalid-free,另有独立模式用于报告可能的 panic 位置。
- lockbud 可以免费使用吗?用的什么许可证?
- lockbud 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
- lockbud 还在维护吗?
- 活跃维护中。lockbud 最近一次提交是在 2026年11月1日。
- lockbud 适合用来做什么?
- 在发布前审查使用 Mutex 或 RwLock 的 Rust 代码,排查潜在死锁。 通过 cargo lockbud 或 Docker 镜像将死锁检查接入 CI 流水线。 研究 Rust 并发缺陷的静态检测方法。
- lockbud 怎么安装和运行?
- 安装所需的 nightly 工具链组件: rustup +nightly-2026-02-07 component add rust-src rustc-dev llvm-tools-preview 克隆仓库: git clone https://github.com/BurtonQin/lockbud.git 进入项目目录: cd lockbud 从本地源码安装 lockbud: cargo +nightly-2026-02-07 install --path .
- 在哪里获取 lockbud?
- 源代码和安装说明在 GitHub 上:https://github.com/BurtonQin/lockbud
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个内存安全的 C 和 C++ 实现,多数现有代码无需改动即可编译运行,内存错误会被转为panic。
面向 GitHub Actions、Dependabot 和 pre-commit 等 CI/CD 配置的静态分析工具,用于查找并修复安全问题。
一款基于 Rust 的密钥扫描工具,可检测泄露的凭证、验证是否有效、梳理其访问范围并支持吊销。
用 Rust 编写的安全扫描器,检查 MCP 服务器和 AI 智能体 Skill 文件中的提示注入、工具投毒与密钥泄露等风险。
一款静态分析工具,扫描 Go 源代码中的常见安全漏洞和不安全写法。