浅静态分析和深静态分析有什么区别?我目前正在使用Xcode,并注意到有一个构建设置可以区分这两者。
我对此很好奇,在一般情况下,我也想知道Clang如何实现这一区别是否有什么不同。
我试过Google-foo,却找不到答案。我试着翻阅苹果和Clang的文档,看看他们是否能解释,但我什么也没找到。希望我没有错过一个明显的石头,以推翻我的搜索。

发布于 2015-04-16 08:40:09
(1)来自苹果公司Evan (编译技术)的谈话给出了一个指示(见第157/158页):
建议:Always analyze in deep mode as part of qualifications
(2)在analyzerOptions的源代码中可以找到更多的详细信息-- UserModeKind变量:
00184 /// \brief Describes the kinds for high-level analyzer mode.
00185 enum UserModeKind {
00186 UMK_NotSet = 0,
00187 /// Perform shallow but fast analyzes.
00188 UMK_Shallow = 1,
00189 /// Perform deep analyzes.
00190 UMK_Deep = 2
00191 };
00192
00193 /// Controls the high-level analyzer mode, which influences the default
00194 /// settings for some of the lower-level config options (such as IPAMode).
00195 /// \sa getUserMode
00196 UserModeKind UserMode;
00197
00198 /// Controls the mode of inter-procedural analysis.
00199 IPAKind IPAMode;如果不深入研究代码,您就会发现其中一个不同之处是(时间消耗)过程间分析的失活.
https://stackoverflow.com/questions/29635938
复制相似问题