RustMC: Extending the GenMC stateless model checker to Rust

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Pearce, Oliver, Lange, Julien, O'Keeffe, Dan
Format: Preprint
Publié: 2025
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866917917483859968
author Pearce, Oliver
Lange, Julien
O'Keeffe, Dan
author_facet Pearce, Oliver
Lange, Julien
O'Keeffe, Dan
contents RustMC is a stateless model checker that enables verification of concurrent Rust programs. As both Rust and C/C++ compile to LLVM IR, RustMC builds on GenMC which provides a verification framework for LLVM IR. This enables the automatic verification of Rust code and any C/C++ dependencies. This tool paper presents the key challenges we addressed to extend GenMC. These challenges arise from Rust's unique compilation strategy and include intercepting threading operations, handling memory intrinsics and uninitialized accesses. Through case studies adapted from real-world programs, we demonstrate RustMC's effectiveness at finding concurrency bugs stemming from unsafe Rust code, FFI calls to C/C++, and incorrect use of atomic operations.
format Preprint
id arxiv_https___arxiv_org_abs_2502_06293
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle RustMC: Extending the GenMC stateless model checker to Rust
Pearce, Oliver
Lange, Julien
O'Keeffe, Dan
Programming Languages
Cryptography and Security
RustMC is a stateless model checker that enables verification of concurrent Rust programs. As both Rust and C/C++ compile to LLVM IR, RustMC builds on GenMC which provides a verification framework for LLVM IR. This enables the automatic verification of Rust code and any C/C++ dependencies. This tool paper presents the key challenges we addressed to extend GenMC. These challenges arise from Rust's unique compilation strategy and include intercepting threading operations, handling memory intrinsics and uninitialized accesses. Through case studies adapted from real-world programs, we demonstrate RustMC's effectiveness at finding concurrency bugs stemming from unsafe Rust code, FFI calls to C/C++, and incorrect use of atomic operations.
title RustMC: Extending the GenMC stateless model checker to Rust
topic Programming Languages
Cryptography and Security
url https://arxiv.org/abs/2502.06293