PreFAST On AMD64

I ran PreFAST on coverage 0.1 and wound up with a strange size_t redefinition problem. I mailed NTDEV to see if anyone had heard of it, and Doron Holan said that one of the dev owners said that PreFAST isn’t ready for prime time on AMD64. At least that’s true as of PreFAST 2.1, which is what’s in the 5112 WDK.

The solution, of course, is to build your code as 32-bit and test it that way. This should be reasonably easy to do; the worst-case scenario is #ifdef’ing out the 64-bit parts if need be. It just so happens that DbgEng code is directly portable between x64 and x86, as long as you don’t do anything dumb, so this didn’t turn out to be a problem for me at all.

And, I managed to find a new bug when I built it under 5112 (the released version is built with 3790.1830) – and in general, I’ve noticed that the PreFAST in the WDK finds many more bugs (mostly true positives) than the previous versions of the tool.

What a great tool.

Leave a Reply

Your email address will not be published. Required fields are marked *