Efficient scalable thread-safety-violation detection: finding thousands of concurrency bugs during testing
Concurrency bugs are hard to find, reproduce, and debug. They often escape rigorous in-
house testing, but result in large-scale outages in production. Existing concurrency-bug …
house testing, but result in large-scale outages in production. Existing concurrency-bug …
Jaaru: Efficiently model checking persistent memory programs
Persistent memory (PM) technologies combine near DRAM performance with persistency
and open the possibility of using one copy of a data structure as both a working copy and a …
and open the possibility of using one copy of a data structure as both a working copy and a …
Linear-time temporal logic guided greybox fuzzing
Software model checking as well as runtime verification are verification techniques which
are widely used for checking temporal properties of software systems. Even though they are …
are widely used for checking temporal properties of software systems. Even though they are …
Predictive monitoring against pattern regular languages
While current bug detection techniques for concurrent software focus on unearthing low-
level issues such as data races or deadlocks, they often fall short of discovering more …
level issues such as data races or deadlocks, they often fall short of discovering more …
Preempting flaky tests via non-idempotent-outcome tests
Regression testing can greatly help in software development, but it can be seriously
undermined by flaky tests, which can both pass and fail, seemingly nondeterministically, on …
undermined by flaky tests, which can both pass and fail, seemingly nondeterministically, on …
Controlled concurrency testing via periodical scheduling
Controlled concurrency testing (CCT) techniques have been shown promising for
concurrency bug detection. Their key insight is to control the order in which threads get …
concurrency bug detection. Their key insight is to control the order in which threads get …
Chipmunk: Investigating crash-consistency in persistent-memory file systems
We present Chipmunk, a new framework to test persistent-memory (PM) file systems for
crash-consistency bugs. Using Chipmunk, we discovered 23 new bugs across five PM file …
crash-consistency bugs. Using Chipmunk, we discovered 23 new bugs across five PM file …
Data-centric dynamic partial order reduction
We present a new dynamic partial-order reduction method for stateless model checking of
concurrent programs. A common approach for exploring program behaviors relies on …
concurrent programs. A common approach for exploring program behaviors relies on …
Resurrecting anti-virtualization and anti-debugging: Unhooking your hooks
T Apostolopoulos, V Katos, KKR Choo… - Future Generation …, 2021 - Elsevier
Dynamic malware analysis involves the debugging of the associated binary files and the
monitoring of changes in sandboxed environments. This allows the investigator to …
monitoring of changes in sandboxed environments. This allows the investigator to …
Generating data race witnesses by an SMT-based analysis
Data race is one of the most dangerous errors in multithreaded programming, and despite
intensive studies, it remains a notorious cause of failures in concurrent systems. Detecting …
intensive studies, it remains a notorious cause of failures in concurrent systems. Detecting …