Clang静态分析和Instruments来剖析代码有一些不同,Clang更致力于在编译的过程中通过自身的一套判断机制来找出代码中潜在的隐患。

 
  在XCode 3.2之后的版本里,Clang已经被集成进来,Static Analysis 是基于 Clang 的非常好的静态代码分析工具。可以从xcode直接运行Static Analysis 分析器。
 
  Static Analysis 优点:
 
  1、使用操作容易。
 
  2、能够在编码阶段,开发自行进行代码检查。早期发现代码隐患。
 
  3、直接分析源代码来发现程序中的错误,而不需要实际运行。
 
  4、自动检测objective-C程序中的BUG,发现内存泄露和其它问题。
 
  5、内存问题发现越早,解决的代价就越小。
 
  使用方法:
 
  1、确保你的程序没有被编译过(编译过了就使用Clean all targets清除编译shift+cmd+k)
  2、点击Product > Analyze (shift+cmd+b)
  3、如果你的程序代码有问题,在编译完成之后,右下角的原来提示warning 和 error的地方现在变成了这样
  
  

  4、现在你可以像解决以前的warning 或者 error一样,对提示的地方点进去。
 
  5、可能会存在问题的一些情况:
  
  点击进去:
  
  发现item初始化了但没有用到这个模型中的属性,所以改成:
  XWRequirementItem *item;
  6.shift+cmd+k 清理工程 shift+cmd+b 再次分析结果,如下图:
  
  
其他可能存在的问题:
  1. 内存泄漏
  2.对象引用
  3.未使用的变量
  4.未使用到的函数
  5.未初始化的变量
  6.数据赋值问题等等。。。
  

建议使用场景:
 
  1、建议在开发编码阶段使用,直接分析源代码来发现程序中的错误,而不需要实际运行,提前发现代码隐患。
 
  2、测试在冒烟测试时可先进行扫描,错误太多代码修改量太大的情况下可暂不介入测试,以免造成返工。
  

Xcode静态检查分析代码的更多相关文章

  1. Python - 使用Pylint检查分析代码

    1-简介 Home Page : https://www.pylint.org/ 检查语法错误,是否遵守编码风格标准.潜在的问题等: 支持自定义配置:例如显示或隐藏特定的警告,并且可以通过编写插件来添 ...

  2. 四种java代码静态检查工具

    [转载]常用 Java 静态代码分析工具的分析与比较 转载自 开源中国社区 http://www.oschina.net/question/129540_23043       1月16日厦门 OSC ...

  3. maven配置checkstyle插件对代码规范进行静态检查

    checkstyle配置的官方网站:http://checkstyle.sourceforge.net/config.html (1)新建maven项目,配置checkstyle插件 pom.xml ...

  4. QtCreator 可以通过 Clang-Tidy 和 CLazy 对你的代码进行静态检查

    QtCreator 可以通过 Clang-Tidy 和 CLazy 对你的代码进行静态检查 打开你的工程,点击Analyze -> Clang-Tidy and CLazy 选择你想分析的 cp ...

  5. Android(Java)利用findbugs进行代码静态检查

    主要介绍利用java静态代码检查工具findbugs进行代码检查,包括其作用.安装.使用.高级功能(远程review和bug同步). 虽然Android提供了Test Project工程以及instr ...

  6. React Native工程中TSLint静态检查工具的探索之路

    建立的代码规范没人遵守,项目中遍地风格迥异的代码,你会不会抓狂? 通过测试用例的程序还会出现Bug,而原因仅仅是自己犯下的低级错误,你会不会抓狂? 某种代码写法存在问题导致崩溃时,只能全工程检查代码, ...

  7. phan—php语法静态检查在windows下的配置

    php7推出了语法树,于是静态语法分析更方便了.(可以直接下载我配置好的,传送门百度网盘) 1.先安装php7,到http://windows.php.net/下载php7带openssl的. 2.修 ...

  8. Kotlin Android项目静态检查工具的使用

    Kotlin Android项目静态检查工具的使用 Kotlin Android项目可用的静态检查工具: Android官方的Lint, 第三方的ktlint和detekt. 静态检查工具 静态检查工 ...

  9. 检查.net代码中占用高内存函数(翻译)

    哈哈,昨天没事做,在CodeProject瞎逛,偶然看到这篇文章,居然读得懂,于是就翻译了一下,当练习英语,同时增强对文章的理解,发现再次翻译对于文章的一些细节问题又有更好的理解.下面是翻译内容,虽然 ...

随机推荐

  1. 浅谈:javascript的面向对象编程之具体实现

    下面的javascript代码都是需要使用jQuery插件来做的.希望大家可以搭建好工作环境 首先我们来做一个练习:在一个删除的超链接中添加一个提示信息,提示是否确认删除. 一般情况下我们都会这么做 ...

  2. JSON资料整理

    http://www.cnblogs.com/zxlovenet/p/3566802.html

  3. python3--删除所有空目录,第一个有实际用处的程序

    #目标:删除所有空文件夹 #逐个判断某目录下所有项目 #若该项目是目录就进入该目录,完成上一步,不是下一个项目 #判断完所有后判断当前目录是否是空目录,是就删除 #需要管理员权限,否则很多目录无权限 ...

  4. jsp URL中文传值

    js中,讲中文转码 encodeURI(中文): Java中,转回中文 java.net.URLDecoder.decode(乱码,"utf-8"): 例子; window.loc ...

  5. 手动安装Oracle的Maven依赖

    由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库. 环境:win7 + Orac ...

  6. weblogic安全漫谈

    今天,我来与大家探讨一下关于weblogic的话题 在进入内网后,如图: 当我们看到7001时,我们就可以测试weblogic反序列化漏洞,如图: 证明,漏洞存在,查看一下权限,如图: 理论上,我们可 ...

  7. Tomcat性能优化

    1.关闭AJP协议 注释以下配置 <!-- <Connector port="8009" protocol="AJP/1.3" redirectPo ...

  8. 使用JS,获取URL中指定参数的值

    /** * 获取URL中指定参数的值 * * @param name 参数名称 * @returns */ function getQueryString(name) { var reg = new ...

  9. php、前端开发(网站建设)环境搭建

    php集成开发环境wampserver,是一款免费开源的软件,下载地址http://www.wampserver.com,由于是国外的网站,打开速度慢,根据自己的电脑选择32位/64位的系统下载.

  10. 1.2、Workspace中让Package分层显示

    有时候我们新建两个具有两个相同目录的Package(例如:com.st.collection和com.st.map这两个Package)时,在Workspace中是以平铺的方式显示的,如: 当Pack ...