摘要: Multicore hardware is making concurrent programs pervasive. Unfortunately, are prone to bugs. Among different types of concurrency bugs, atomicity violation bugs common and important. Existing techniques detect suffer from one limitation: requiring manifest during monitored runs, which an open problem in program testing.This paper makes two contributions. First, it studies the interleaving characteristics practice testing (i.e., running a over over) understand why hard expose. Second, proposes CTrigger effectively efficiently expose large programs. focuses on special type interleavings unserializable interleavings) that inherently correlated uses trace analysis systematically identify (likely) feasible with low occurrence-probability. then minimum execution perturbation exercise low-probability difficult-to-catch violation.We evaluate real-world four sever/desktop applications (Apache, MySQL, Mozilla, PBZIP2) three SPLASH2 8-core machines. exposes tested within 1--235 seconds, orders magnitude faster than stress testing. Without CTrigger, some these do not even after 7 full days In addition, without deterministic replay support, once bug exposed, can help programmers reliably reproduce for diagnosis. Our reproduced by mostly 5 300 60000 times