Finding causes of program output with the Java Whyline | Synapse