next up previous
Next: 4 Finding Format String Up: 3.2 Added Features Previous: Unannotated Functions.

Hotspots.

Although many of the features of the system are geared toward reducing false positives and, where there are real bugs, reducing the number of resulting warnings, occasionally the user will be faced with hundreds of warnings.

To help the user decide which warnings to investigate first, we attempt to determine ``hotspots'' in the code. For each error message, we compute the shortest taint flow path and increment a counter associated with each qualifier on the path. We then present the user with a hyperlinked list of the ``hottest'' qualifiers, i.e., those involved in the largest number of (shortest) taint flow paths. The idea--borne out by our experience--is that adding a single annotation at an important point can dramatically reduce the number of warnings.

One extension to this idea, which we have not yet implemented, is to find the hottest constraints rather than the hottest qualifiers. This may help point the user to a particular erroneous expression in the code, rather than to an identifier.



Umesh Shankar 2001-05-16