Skip to content

parasol-aser/SWORD

Repository files navigation

SWORD: A Fast Concurrency Bug Detection for The Whole Program

Introduction

SWORD is an interactive Eclipse Plugin to detect data races and deadlocks in Java programs. The fundamental techniques (i.e., points-to analysis and static happens-before analysis) that SWORD adopts are in:

[FSE'16] "ECHO: Instantaneous In Situ Race Detection in the IDE"

[PLDI'18] "D4: Fast Concurrency Debugging with Parallel Differential Analysis"

Software Dependencies

  • Java 1.8
  • Eclipse PDE

Quick Start

  1. Clone the project
  2. Import all the projects in Eclipse and build.

How To Use

Start The Detection

  1. Select a main class in the Package Explorer
  2. Right click ASER -> SWORD to start the detection.

SWORD Views

Goto Windows -> Show View -> Others to open the ECHO views (i.e., ECHO Race List, ECHO Deadlock List, ECHO Concurrency Relation):

  • SWORD Race List: contains all the detected races with a pair of read/write accesses and their possible traces
  • SWORD Deadlock List: contains all the detected deadlocks with a pair of nested locks and their possible traces
  • SWORD Concurrency Relation: contains all read and write operations that may happen in parallel

Large Benchmarks

The github repo includes 6 large, real-world Java projects. To test the practicality of SWORD on these projects, you can import them into your target workspace.

Some large benchmarks are available here

License

MIT