Tracing the executions of concurrent programs
Elsa L. Gunter, Doron Peled · Electronic Notes in Theoretical Computer Science · 2002
Checking the reliability of software is an ever growing challenge. Fully automatic tools that attempt to cover the entire state space often fail because of state explosion. We present instead a toolset that employs some less-ambitious but useful methods to assist in software debugging. The toolset provides an automatic translation of the code into visual flowcharts, allowing the user to interactively select execution paths. It assists the user by calculating path conditions and exploring the neighborhood of the paths. It also allows the user to interactively step through the execution of the program, directed by temporal formulas interpreted over finite sequences. We will show several different ways of using these capabilities for debugging sequential and concurrent programs.