代码静态分析使用实例

代码静态分析使用实例

代码静态分析
程序静态分析是指在不运行代码的方式下,通过词法分析语法分析控制流、数据流分析等技术对程序代码进行扫描,
验证代码是否满足规范性、安全性、可靠性、可维护性等指标的一种代码分析技术。简单点说就是检查语法错误(内存
越界、野指针等)。下面说说具体使用:
 1-1 数组越界和野指针问题
编译过后选择静态代码分析:
图 1-2 代码静态分析操作
结果如图1-3:
 
图 1-3 静态分析结果
当你修改好错误后,再次编译前,先去掉静态分析的标志,不然一直会有这个错误提示:

~LEI506RG5(Q_Q978O6T%PI.png (42.57 KB, 下载次数: 0)

下载附件

2016-12-13 21:17 上传

图 1-4 取消静态分析错误标志

    • Related Articles

    • 找不到符号 can not find symbol:xxx 定位分析

      Q:编译应用程序后运行报错 can not find symbol:xxx 是什么问题? 如下示例,运行程序后报错:can not find symbol:_ZN11checkThread3runEv 分析 can not find symbol:xxx 的原因大致分为三种情况: 1、参考文章:找不到符号 can not find symbol:xxx 分析之一(误操作输入错误函数名称) 2、参考文章:找不到符号 can not find symbol:xxx 分析之二(库路径未添加或库未上传) ...
    • 在使用静态映射和动态映射时,出现错误

      Q:在使用静态映射和动态映射时,出现错误? 动态映射出来的虚拟地址只对 cpu 访问有效,其他 dma 控制器对虚拟地址是不可见的,一块内存如果不是 cpu 读取则必须平板映射(静态映射) 如果只是 dma 访问的话,直接访问物理地址就行,不需要映射。 Cpu 和 dma 都会访问的内存空间,前一部分让 cpu 访问,后一部分让dma访问 动态映射:API_VmmIoRmapNocache 要求页对齐 eg:atVirtBase = ...
    • error adding symbols:Bad value

      Q:SylixOS 系统编译引用了静态库的 App 时报错,怎么解决? 应用程序在引用静态库的时候只能选择 SylixOS Shared Lib 创建出的静态或动态库,只有 SylixOS Shared Lib 创建出的库才具有动态装载功能。 出现类似这种原因是因为使用了SylixOS Kernel Static Lib 创建出的静态库,这一类库是不具备动态装载能力的,即使编译可以通过,在复杂程序中运行也会受到干扰。
    • SylixOS 中链接 libvpmpdm.a 时不能正常运行业务代码?

      Q:当使用静态库libvpmpdm.a,链接可执行程序时,操作系统会因为能找到main函数,但是找不到start函数,而不启动应用程序。如果操作系统是release版本的,应用程序不但起不来,shell上面没有任何的异常输出,导致追查程序启动异常非常困难。 我们做了个测试,如果将libsylixos/Output目录下的 libvpmpdm.so 删除,直接编译SylixOS应用,SylixOS 应用将链接了 libsylixos/Output 目录下 libvpmpdm.a ...
    • SylixOS 日志子系统实现分析

      Q:SylixOS 日志子系统实现分析 SylixOS 中日志系统的相关实现在目录“/libsylixos/SylixOS/system/logLib”下。 1、内核中日志系统初始化       系统内核启动时候调用到 _logInit 函数,函数实现如下: (1)创建消息队列; (2)调用函数 API_PartitionCreate 创建内存分区(建立 printk 缓冲); (3)建立 LOG 处理线程 t_log 并初始化。 2、分析 2.1 t_log 线程分析 (1) 调用函数 ...