I use PREfast because...

Updated: March 23, 2005

Don Burn: ...it improves the quality of my work.

PREfast provides a way to find bugs that I might otherwise miss or which I would have to find during debug. PREfast keeps getting better as extensions are added for driver specific bugs.

Before you say, "If it was important you would catch it in debugging", consider that PREfast takes seconds to run. Checking and fixing the bugs PREfast reports takes very little time. In fact debugging just one problem on a test machine can easily take more time than the total effort to run PREfast and fix all the reported bugs.

Many people complain about PREfast because it issues many warnings that can be ignored. Instead of complaining, view the effort to suppress the warnings as a mini code review. Since you need to check if the warning is valid anyway, look at the code around the warning and validate that no other errors are present. PREfast will take you through your code in a different manner than you normally would do, so use this fresh perspective to look for problems.

If you do not think PREfast is valuable consider an experience I had with a while back. A customer of mine does not use PREfast because of their non-standard build environment. The firm had a bug they had been chasing on and off for six months without being able find it. I was going to integrate some code into their driver, so as part of my building the driver I ran PREfast, and up popped the problem in an error report. With PREfast, it took me minutes to find what six months of debugging had not.


Top of pageTop of page