ICSE 2024 (series) / Artifact Evaluation /
Constraint Based Program Repair for Persistent Memory Bugs
In this artifact, we present our tool \textsc{PMBugAssist}, which repairs both durability and crash consistency bugs. Unlike other tools relying on syntax patterns to expose and repair persistency bugs, our tool encodes x86 persistency semantics and is able to automatically and symbolically find new repair strategies. Our tool takes buggy execution traces, blocks all potential buggy execution traces, and output a suggest repair. Our tool is implemented in C++ code with Z3 SMT solver. We have evaluated our method on benchmark programs from the well-known Intel PMDK library as well as real applications such as Memcached, Recipe, and Redis under Ubuntu 20.04.