Detecting Bugs of Concurrent Programs with Program Invariants

2016 
Concurrency bug detection is a physical and time-consuming activity in the debugging process for concurrent programs. Existing techniques mainly focus on detecting data race bugs with pattern analysis, however, (1) the number of interleaving patterns could be huge, (2) only most suspicious write-read pattern is given, and (3) an oracle is needed which is not available in the operational phase. This paper proposes a program invariant based technique to detect a class of concurrent program bugs. By unit testing of some component of a concurrent program, we obtain a set of program invariants, which can be used as an oracle to get 'bad' invariants when the program is online. By building the function call graph of the component and applying reduction technique invariants, we compute the candidates of suspicious functions and rank them. From interactions among components, we can analyze the cause of concurrency bugs. Experimental results have shown that our proposed technique is effective in concurrency bug detection and cause analysis.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    7
    References
    0
    Citations
    NaN
    KQI
    []