Answers:
我过去曾经使用过皮棉,发现它很有用。但是,当我转到一个不使用它的较大项目时,我不得不停止使用它。由于代码的相互联系,这使得使用lint变得困难。皮棉最大的问题是对其进行配置,以消除误报且无关紧要。现在,他们在过去的一年中又发布了一个版本可能会更好。
与我合作的一家公司完成了这个大型项目,并将其通过Coverity的静态分析仪进行了分析。但是,这是一笔很大的钱,因此不建议小公司使用。
我没有使用过皮棉,但我发现GCC的警告可以检测到许多编程错误。
这是我首选的CFLAGS
CFLAGS + =-错误-W -Wall -ansi -pedantic -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wbad-function-cast -Wmissing-Prototypes -Wstrict-prototypes -Wmissing-clarifications -Winline -Wundef -Wnested- externs -Wshadow -Wconversion -Wwrite-strings -Wno-conversion -Wextra -Wstrict-aliasing -Wcast-qual
我还与Linus Torvalds的Sparse进行了静态分析。但是,我认为这类工具对大型系统更有用。