我已经多次阅读过Build and Analyze并不完美。当我运行它时,它确实产生了一些有用的信息并且肯定改进了我的代码,但它也提供了不是必要问题的结果。在那一刻我正在改变我的代码,试图摆脱所有的分析结果,无论它们是否是一个问题。这是最好的做法,因为像警告那样很容易检查你是否有问题,或者我是否应该认识到分析仪并不完美并且除非找到真正的问题,否则不要更改代码?
答案 0 :(得分:6)
首先,所有编译器警告只是仅在运行时中显示的错误。它们不会阻止编译,但它们最终会在某个地方引起严重问题。您应该进入构建设置并选中“将警告视为错误”并随时修复产生的错误。否则,你最终将努力调试问题。
分析仪并不完美,但您应该仔细检查它发现的任何问题。应该修复它在代码中发现的任何问题。有时它报告来自API的错误,可能没有任何事情要做。
在大多数情况下,忽略任何编译器阶段的错误都是“一分钱一分钱,愚蠢”的时间节省。您预先保存的任何时候都将丢失以后的调试。
答案 1 :(得分:3)
是的 - 理想情况下,您希望解决分析过程中引发的所有问题。
然而,虽然clang
很棒,但它并不完美。有时它可能会引发误报。如果您确定是这种情况,并且诊断错误,则应尝试重新创建显示错误的最小可能测试用例,并将其提交到http://clang-analyzer.llvm.org/filing_bugs.html,以便他们可以改进分析引擎。 / p>
答案 2 :(得分:0)
我认为,上述答案的一个例外是当您使用垃圾收集时。在这种情况下,分析器,唉,仍然显示潜在的泄漏,但自然它们不适用于使用垃圾收集。