What is McMini?
McMini is an advanced dynamic partial-order reduction (DPOR)-based model checker that scans your multithreaded binaries for concurrency issues like deadlocks and segmentation faults. It runs directly on Linux binaries—no modifications or wrappers needed.
How does it work?
Just run your executable with:
``` mcmini ./your_program.out ```
McMini will explore possible thread schedules and detect issues that regular execution may miss.
Once McMini has found a deadlock or race condition, you can use the `mcmini-gdb` command to step forward and backward in the execution trace, observing all thread operations that lead to the bug.
Key Features:
- Direct analysis of Linux binaries
- Deadlock, segfault, and assertion failure detection
- Step through execution traces with `mcmini-gdb` to pinpoint issues
- Quick setup: install with Git and go
- Advanced tracing options for in-depth analysis
- Ideal for debugging multithreaded code across all experience levels
Whether you’re a computer science student, a software engineer, or just learning about concurrency and multithreading, McMini can help you analyze, test, and optimize your code.
---
Try McMini Today!
[GitHub Repo](https://github.com/mcminickpt/mcmini.git)
[Manual](https://mcmini-doc.readthedocs.io/)
Get a flavor of McMini's advanced usage by reading our tutorials:
- [Running McMini](https://mcmini-doc.readthedocs.io/usage/tutorial-basic.html)
- [Analyzing a Subtle Bug](https://mcmini-doc.readthedocs.io/usage/tutorial-subtle.html)