Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Byte code analyzers look for known bug patterns in compiled code. This implies two things. First, some languages have been studied enough to find common bug patterns in the compiled byte code. Second, these tools can’t find arbitrary bugs—they find only bugs for which patterns have been defined. This doesn’t mean that these tools are weak. Some of the bugs they find are extraordinarily difficult to find using other means (that is, by spending many unproductive hours staring at a debugger).
One such tool is FindBugs, an open source project from the University of Maryland. FindBugs operates in several different modes: command line, from an Ant task, and from a graphical environment. The FindBugs GUI appears in Figure 7-1.