├── .gitignore ├── Cargo.lock ├── Cargo.toml ├── Data ├── BugReport.xlsx └── RustStudy.xlsx ├── LICENSE ├── README.md ├── detect.sh ├── measure_time.sh ├── rust-toolchain.toml ├── src ├── analysis │ ├── callgraph │ │ └── mod.rs │ ├── controldep │ │ ├── mod.rs │ │ └── tests.rs │ ├── datadep │ │ └── mod.rs │ ├── defuse │ │ └── mod.rs │ ├── mod.rs │ ├── pointsto │ │ └── mod.rs │ └── postdom │ │ ├── mod.rs │ │ └── tests.rs ├── bin │ └── cargo-lockbud.rs ├── callbacks.rs ├── detector │ ├── atomic │ │ ├── mod.rs │ │ └── report.rs │ ├── lock │ │ ├── mod.rs │ │ └── report.rs │ ├── memory │ │ ├── invalid_free.rs │ │ ├── mod.rs │ │ └── use_after_free.rs │ ├── mod.rs │ ├── panic │ │ └── mod.rs │ └── report.rs ├── interest │ ├── concurrency │ │ ├── atomic.rs │ │ ├── chan.rs │ │ ├── condvar.rs │ │ ├── lock.rs │ │ └── mod.rs │ ├── memory │ │ ├── cast.rs │ │ ├── mod.rs │ │ ├── ownership.rs │ │ ├── rawptr.rs │ │ └── uninit.rs │ └── mod.rs ├── main.rs └── options.rs └── toys ├── atomic-violation ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── call-no-deadlock ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── condvar-closure ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── condvar-struct ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── conflict-inter ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── conflict ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── inter ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── intra ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── invalid-free ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── issue71 ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── lock-closure ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── panic ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── recursive-no-deadlock ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── static-ref ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs ├── tikv-wrapper ├── Cargo.lock ├── Cargo.toml └── src │ ├── main.rs │ └── util.rs ├── use-after-free ├── Cargo.lock ├── Cargo.toml └── src │ └── main.rs └── wait-lock-no-deadlock ├── Cargo.lock ├── Cargo.toml └── src └── main.rs /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/Cargo.toml -------------------------------------------------------------------------------- /Data/BugReport.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/Data/BugReport.xlsx -------------------------------------------------------------------------------- /Data/RustStudy.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/Data/RustStudy.xlsx -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/README.md -------------------------------------------------------------------------------- /detect.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/detect.sh -------------------------------------------------------------------------------- /measure_time.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/measure_time.sh -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/rust-toolchain.toml -------------------------------------------------------------------------------- /src/analysis/callgraph/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/analysis/callgraph/mod.rs -------------------------------------------------------------------------------- /src/analysis/controldep/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/analysis/controldep/mod.rs -------------------------------------------------------------------------------- /src/analysis/controldep/tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/analysis/controldep/tests.rs -------------------------------------------------------------------------------- /src/analysis/datadep/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/analysis/datadep/mod.rs -------------------------------------------------------------------------------- /src/analysis/defuse/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/analysis/defuse/mod.rs -------------------------------------------------------------------------------- /src/analysis/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/analysis/mod.rs -------------------------------------------------------------------------------- /src/analysis/pointsto/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/analysis/pointsto/mod.rs -------------------------------------------------------------------------------- /src/analysis/postdom/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/analysis/postdom/mod.rs -------------------------------------------------------------------------------- /src/analysis/postdom/tests.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/analysis/postdom/tests.rs -------------------------------------------------------------------------------- /src/bin/cargo-lockbud.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/bin/cargo-lockbud.rs -------------------------------------------------------------------------------- /src/callbacks.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/callbacks.rs -------------------------------------------------------------------------------- /src/detector/atomic/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/detector/atomic/mod.rs -------------------------------------------------------------------------------- /src/detector/atomic/report.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/detector/atomic/report.rs -------------------------------------------------------------------------------- /src/detector/lock/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/detector/lock/mod.rs -------------------------------------------------------------------------------- /src/detector/lock/report.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/detector/lock/report.rs -------------------------------------------------------------------------------- /src/detector/memory/invalid_free.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/detector/memory/invalid_free.rs -------------------------------------------------------------------------------- /src/detector/memory/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/detector/memory/mod.rs -------------------------------------------------------------------------------- /src/detector/memory/use_after_free.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/detector/memory/use_after_free.rs -------------------------------------------------------------------------------- /src/detector/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/detector/mod.rs -------------------------------------------------------------------------------- /src/detector/panic/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/detector/panic/mod.rs -------------------------------------------------------------------------------- /src/detector/report.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/detector/report.rs -------------------------------------------------------------------------------- /src/interest/concurrency/atomic.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/interest/concurrency/atomic.rs -------------------------------------------------------------------------------- /src/interest/concurrency/chan.rs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/interest/concurrency/condvar.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/interest/concurrency/condvar.rs -------------------------------------------------------------------------------- /src/interest/concurrency/lock.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/interest/concurrency/lock.rs -------------------------------------------------------------------------------- /src/interest/concurrency/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/interest/concurrency/mod.rs -------------------------------------------------------------------------------- /src/interest/memory/cast.rs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/interest/memory/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/interest/memory/mod.rs -------------------------------------------------------------------------------- /src/interest/memory/ownership.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/interest/memory/ownership.rs -------------------------------------------------------------------------------- /src/interest/memory/rawptr.rs: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/interest/memory/uninit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/interest/memory/uninit.rs -------------------------------------------------------------------------------- /src/interest/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/interest/mod.rs -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/main.rs -------------------------------------------------------------------------------- /src/options.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/src/options.rs -------------------------------------------------------------------------------- /toys/atomic-violation/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/atomic-violation/Cargo.lock -------------------------------------------------------------------------------- /toys/atomic-violation/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/atomic-violation/Cargo.toml -------------------------------------------------------------------------------- /toys/atomic-violation/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/atomic-violation/src/main.rs -------------------------------------------------------------------------------- /toys/call-no-deadlock/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/call-no-deadlock/Cargo.lock -------------------------------------------------------------------------------- /toys/call-no-deadlock/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/call-no-deadlock/Cargo.toml -------------------------------------------------------------------------------- /toys/call-no-deadlock/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/call-no-deadlock/src/main.rs -------------------------------------------------------------------------------- /toys/condvar-closure/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/condvar-closure/Cargo.lock -------------------------------------------------------------------------------- /toys/condvar-closure/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/condvar-closure/Cargo.toml -------------------------------------------------------------------------------- /toys/condvar-closure/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/condvar-closure/src/main.rs -------------------------------------------------------------------------------- /toys/condvar-struct/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/condvar-struct/Cargo.lock -------------------------------------------------------------------------------- /toys/condvar-struct/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/condvar-struct/Cargo.toml -------------------------------------------------------------------------------- /toys/condvar-struct/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/condvar-struct/src/main.rs -------------------------------------------------------------------------------- /toys/conflict-inter/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/conflict-inter/Cargo.lock -------------------------------------------------------------------------------- /toys/conflict-inter/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/conflict-inter/Cargo.toml -------------------------------------------------------------------------------- /toys/conflict-inter/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/conflict-inter/src/main.rs -------------------------------------------------------------------------------- /toys/conflict/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/conflict/Cargo.lock -------------------------------------------------------------------------------- /toys/conflict/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/conflict/Cargo.toml -------------------------------------------------------------------------------- /toys/conflict/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/conflict/src/main.rs -------------------------------------------------------------------------------- /toys/inter/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/inter/Cargo.lock -------------------------------------------------------------------------------- /toys/inter/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/inter/Cargo.toml -------------------------------------------------------------------------------- /toys/inter/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/inter/src/main.rs -------------------------------------------------------------------------------- /toys/intra/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/intra/Cargo.lock -------------------------------------------------------------------------------- /toys/intra/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/intra/Cargo.toml -------------------------------------------------------------------------------- /toys/intra/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/intra/src/main.rs -------------------------------------------------------------------------------- /toys/invalid-free/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/invalid-free/Cargo.lock -------------------------------------------------------------------------------- /toys/invalid-free/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/invalid-free/Cargo.toml -------------------------------------------------------------------------------- /toys/invalid-free/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/invalid-free/src/main.rs -------------------------------------------------------------------------------- /toys/issue71/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/issue71/Cargo.lock -------------------------------------------------------------------------------- /toys/issue71/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/issue71/Cargo.toml -------------------------------------------------------------------------------- /toys/issue71/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/issue71/src/main.rs -------------------------------------------------------------------------------- /toys/lock-closure/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/lock-closure/Cargo.lock -------------------------------------------------------------------------------- /toys/lock-closure/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/lock-closure/Cargo.toml -------------------------------------------------------------------------------- /toys/lock-closure/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/lock-closure/src/main.rs -------------------------------------------------------------------------------- /toys/panic/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/panic/Cargo.lock -------------------------------------------------------------------------------- /toys/panic/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/panic/Cargo.toml -------------------------------------------------------------------------------- /toys/panic/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/panic/src/main.rs -------------------------------------------------------------------------------- /toys/recursive-no-deadlock/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/recursive-no-deadlock/Cargo.lock -------------------------------------------------------------------------------- /toys/recursive-no-deadlock/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/recursive-no-deadlock/Cargo.toml -------------------------------------------------------------------------------- /toys/recursive-no-deadlock/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/recursive-no-deadlock/src/main.rs -------------------------------------------------------------------------------- /toys/static-ref/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/static-ref/Cargo.lock -------------------------------------------------------------------------------- /toys/static-ref/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/static-ref/Cargo.toml -------------------------------------------------------------------------------- /toys/static-ref/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/static-ref/src/main.rs -------------------------------------------------------------------------------- /toys/tikv-wrapper/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/tikv-wrapper/Cargo.lock -------------------------------------------------------------------------------- /toys/tikv-wrapper/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/tikv-wrapper/Cargo.toml -------------------------------------------------------------------------------- /toys/tikv-wrapper/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/tikv-wrapper/src/main.rs -------------------------------------------------------------------------------- /toys/tikv-wrapper/src/util.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/tikv-wrapper/src/util.rs -------------------------------------------------------------------------------- /toys/use-after-free/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/use-after-free/Cargo.lock -------------------------------------------------------------------------------- /toys/use-after-free/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/use-after-free/Cargo.toml -------------------------------------------------------------------------------- /toys/use-after-free/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/use-after-free/src/main.rs -------------------------------------------------------------------------------- /toys/wait-lock-no-deadlock/Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/wait-lock-no-deadlock/Cargo.lock -------------------------------------------------------------------------------- /toys/wait-lock-no-deadlock/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/wait-lock-no-deadlock/Cargo.toml -------------------------------------------------------------------------------- /toys/wait-lock-no-deadlock/src/main.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BurtonQin/lockbud/HEAD/toys/wait-lock-no-deadlock/src/main.rs --------------------------------------------------------------------------------