Finding yourself in a situation with a working and a buggy system is quite common. Differential debugging methodically can help by comparing a known good system with a buggy one, working toward the problem source. Some simple steps include applying differential debugging by looking at log files and increasing a system's log verbosity when needed. If the system doesn't offer a sufficiently detailed logging mechanism, you can tease out its runtime behavior with tools that trace calls to the operating system or that trace network packets. You can also compare carefully the two environments where the systems operate. The Web extra at http://youtu.be/qnXS6b4hakg is an audio podcast of author Diomidis Spinellis reading his Tools of the Trade column, in which he discusses how comparing a good system with a buggy one can help locate the source of the problem.
- Log file
- Unix tools