使用Klockwork进行代码分析简单操作流程

  前一段时间公司试用了一下klockwork公司的klockwork代码静态分析软件,我所在项目组进行了试点,试用后感觉不错,有几大亮点:

        1)对代码进行静态分析,无需改动任何源码文件;

        2)分析出来的缺陷问题准率比较高。根据我使用情况来看,达到90%以上;

        3)针对问题的描述非常清晰,有详细的问题产生流程(具体每一步骤所涉及的源代码文件、行数),基本上一看就清楚问题的产生来源;

        4)具备跨文件/模块的分析能力(这一点对于大型项目尤其重要)。

        当然,目前为止我也只是试用了该软件关于问题缺陷的分析功能,还有很多高级功能没有用到。以下针对该软件的安装及简单使用进行说明。

        Linux系统软件安装及操作:

        1)安装服务端程序:

      ./kw-server-installer.9.2.1.7276.linux.sh -i /usr/local/kwserver –a

      -i选项设置安装目录,-a不打印授权协议信息

      注意:必须以普通用户进行服务端程序的安装。

2)拷贝license文件到安装目录下的prjects_root/licenses目录;

3)启动klockwork软件:  
             /usr/local/kwserver/bin/kwservice -r /usr/local/kwserver/projects_root/ start
             Klockwork软件自带了mysql数据库,其启动时也会进行数据库的启动,可能造成其自带数据库端口号与系统数据库端口号冲突,此时通过如下命令进行数据库端口号的修改:
             /usr/local/kwserver/bin/kwservice –r /usr/local/kwserver/projects_root/ set-service-property database port 3310
            如上命令将数据库缺省的3306端口改为3310。

     注意:以上命令只能由普通用户执行(非root用户)。

4)代码静态分析:

     a)采集程序信息
                 进入软件项目目录,运行如下命令采集程序信息(第一次运行该命令必须保证完整make):

          /usr/local/kwserver/bin/kwinject -o xxx.out make

          其中,xxx.out为所采集程序信息的输出文件,为避免遗忘,名称与项目名称一致。

     b)建立静态分析工程:
                 /usr/local/kwserver/bin/kwadmin create-project xxx --language c,cxx

         其中,xxx为静态分析工程名称(即分析结果项目名称)。c,cxx表示该工程为C/C++工程(当前支持c,cxx,java,csharp,多种语言中用“,”分隔)。可通过如下命令查看当前存在的工程:/usr/local/kwserver/bin/kwadmin list-projects。

      c)对代码进行静态分析:
                  /usr/local/kwserver/bin/kwbuildproject -f -o ./table1 xxx.out

          其中,-f表示强制进行项目的build,即使目标目录中已经存在上次build后的数据。 -o设置分析结果目录,./table1为静态分析结果数据的存放目录,可以根据需要进行修改。xxx.out为前述生成的静态分析工程名称。如果一个项目涉及多个静态分析工程,则多个工程间用空格进行分隔。

      d)加载分析结果:
                  /usr/local/kwserver/bin/kwadmin load xxx ./table1/

          其中,xxx为静态分析工程名称,./table1为静态分析结果数据目录。

5)通过http://xxx.xxx.xxx.xxx:8080地址查看以上静态分析结果,其中xxx.xxx.xxx.xxx为klockwork服务器地址,截图如下:

    

使用Klockwork进行代码分析简单操作流程 - china.ygw - ^_^ china.ygw的博客

 

使用Klockwork进行代码分析简单操作流程 - china.ygw - ^_^ china.ygw的博客

 

使用Klockwork进行代码分析简单操作流程 - china.ygw - ^_^ china.ygw的博客

 

使用Klockwork进行代码分析简单操作流程 - china.ygw - ^_^ china.ygw的博客

 Windows系统软件安装及操作:
1)运行服务端安装程序,期间自动安装所需要的Java 2 SE Runtime Environment 6u22及相应的.Net Framework;
2)安装过程说明:
使用Klockwork进行代码分析简单操作流程 - china.ygw - ^_^ china.ygw的博客
  
      该目录存放服务器数据(含License文件)
 
使用Klockwork进行代码分析简单操作流程 - china.ygw - ^_^ china.ygw的博客
 
      缺省的服务器端口为8080,数据库端口为3306,License服务器端口为27000。
3)安装完成后,通过菜单的“Start Klockwork Servers”菜单项进行启动,然后运行Klockwork Management Console进行操作;
4)代码静态分析流程:
使用Klockwork进行代码分析简单操作流程 - china.ygw - ^_^ china.ygw的博客
      a)如上图,通过klockwork management console的File菜单New Project菜单项建立新工程,在新工程窗体中选中C,C++语言。注意:C/C++语言不能与C#语言同时选中。
使用Klockwork进行代码分析简单操作流程 - china.ygw - ^_^ china.ygw的博客
        b)如上图,选择代码工程,选择源代码文件编码格式;
使用Klockwork进行代码分析简单操作流程 - china.ygw - ^_^ china.ygw的博客
       c)如上图,选择所有选项,以保证分析结果更详细;
 
使用Klockwork进行代码分析简单操作流程 - china.ygw - ^_^ china.ygw的博客
       d)如上图, 新建立的工程如上图所示,选中该工程,点击右键菜单的“Build”菜单进行工程的代码静态分析;
使用Klockwork进行代码分析简单操作流程 - china.ygw - ^_^ china.ygw的博客
        e)如上图, 显示Build进度,indow自动将Linux系统中的多个分析步骤集成于一体,只需要简单的Build就完成一切。

当然,klockwork软件有服务端与客户端之分,以上只针对最简单方式进行说明。
 
  • 0
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Klocwork 介绍 Klocwork - 源代码缺陷自动分析工具概述:Klocwork 软件是 Klocwork 公司基于专利技术分析引擎开发的,综合应用了多种近年来 最先进的静态分析技术,是出色的软件静态分析软件。Klocwork 产品与其它同类产品相比, 具有很多突出的特征:Klocwork 支持的语言种类多,能够分析 C、C++和 Java 代码;能够发 现的软件缺陷种类全面,既包括软件质量缺陷,又包括安全漏洞方面的缺陷,还可以分析对软 件架构、编程规则的违反情况;软件分析功能全面,既能分析软件的缺陷,又能进行可视化的 架构分析、优化;能够分析软件的各种度量;能够提供与多种主流 IDE 开发环境的集成;能 够分析超大型软件(上千万代码行)。主要功能: 缺陷检测提供多角度的各种缺陷类型的分析。自动化的缺陷检测功能易于使用,定制灵活,具有图 形化的构建和报表管理图形界面,拥有业界领先的消息过滤器,极具柔性的配置,和强大的学 习调整知识库;Klocwork 能够分析 C/C++和 Java 代码,生成代码问题报告,能够发现的缺陷 类型举例。(详细参见附录): C/C++缺陷类型样例 空指针释放 内存管理问题(如:内存泄漏) 数组越界 未初始化数据使用 编码风格问题(如:在条件中赋值) Java 缺陷类型样例 效率错误(如:空的 finalize 方法) 可维护性问题(如:空的 catch 从句) 可靠性问题(如资源泄漏) 安全漏洞检测Klocwork 确信软件安全性是软件质量中一个重要的、并越来越受重视的方面。同样的, 所有的 Klocwork 安全漏洞分析是基于市场领先的缺陷检测能力,从原来的缺陷检测分离出来 单独的安全漏洞检测和违反推荐的安全代码最佳实践的缺陷检测。 能够检测到的安全漏洞类型 举例(详细参见附录) C/C++安全漏洞分类 访问控制缺陷 缓冲区溢出 DNS 欺骗 忽略返回值 注入缺陷 不安全的存储 未经验证的用户输入 Java 安全漏洞分类 拒绝服务 注入缺陷(如:SQL 注入、进程注入等) 未经验证的输入 移动代码安全 有漏洞的会话管理 跨站点脚本 出错处理不当
### 回答1: Klockwork 是一种静态代码分析工具,它可以帮助开发人员在编写代码时发现潜在的错误和安全隐患。对于那些需要高质量代码的软件项目来说,使用 Klockwork 手册是非常有价值的。 CSDN(博客)上有一份 Klockwork 使用手册,它提供了详细的指导和教程,帮助用户充分利用 Klockwork 工具来改善代码质量。手册包含以下几个方面的内容。 首先,手册介绍了 Klockwork 的基本使用方法,包括如何下载、安装和配置 Klockwork,以及如何将其与常见的集成开发环境(IDE)集成,如 Eclipse、Visual Studio 等。用户可以根据实际需求选择合适的集成方式。 其次,手册详细介绍了 Klockwork 的常见功能和工作原理。例如,它可以检测出代码中可能导致内存泄漏、空指针引用和未初始化变量等错误。它还提供了自定义规则的功能,使开发人员可以根据项目需求定义自己的代码规范和检查规则。 手册还提供了一些实用的示例和建议,帮助用户更好地理解和使用 Klockwork。例如,如何针对特定的开发语言或应用场景进行配置,以及如何解读并处理工具生成的分析结果报告。 最后,手册介绍了 Klockwork 的一些高级功能,如与持续集成工具的集成、多用户协作和定制化错误报告等。这些功能能够进一步提高代码质量和开发效率。 总而言之,CSDN 上的 Klockwork 使用手册提供了详尽的文档和指导,帮助开发人员更好地使用和利用 Klockwork 工具来改善软件项目的代码质量,提高开发效率。无论是初学者还是有经验的开发人员,都可以从中获得巨大收益。 ### 回答2: CSDN 是一个面向 IT 从业者的社区平台,提供了丰富的技术知识和资源,包括 Klockwork 使用手册。Klockwork 是一款静态代码分析工具,旨在帮助开发人员提高软件质量,发现和修复代码中的潜在问题。 在 CSDN 上查阅 Klockwork 使用手册,用户可以学习到如何正确安装和配置 Klockwork 工具,并了解其各种功能和用法。手册涵盖了从静态代码分析到问题排查和解决方案的完整流程。 手册首先介绍了 Klockwork 的基本概念和目标,以及它与其他代码分析工具的区别。然后详细说明了如何在不同的开发环境中正确安装和配置 Klockwork,包括与 IDE 的集成和与版本控制系统的配合使用。 接下来,手册重点介绍了 Klockwork 的静态代码分析功能,包括代码风格检查、内存泄漏检测、空指针引用检查等。它详细说明了如何使用 Klockwork 的命令行工具或集成到 IDE 中进行代码分析,并解释了报告中不同类型问题的意义和修复建议。 此外,手册还介绍了 Klockwork 提供的高级功能,如多版本分析、自定义规则和结果过滤等。它还提供了一些实际案例和最佳实践,帮助用户更好地理解和应用 Klockwork。 总而言之,CSDN 上的 Klockwork 使用手册是一个非常有价值的资源,能够帮助开发人员充分利用 Klockwork 工具进行静态代码分析,并提高软件质量和开发效率。用户可以通过全面的手册内容和丰富的实例,快速了解和掌握 Klockwork使用方法和技巧。 ### 回答3: Klockwork使用手册是一份非常有用的技术文档,适用于那些希望使用Klockwork静态代码分析工具来提高代码质量和可靠性的开发人员。这份手册提供了详细的指导,帮助用户了解Klockwork的基本原理、安装和配置过程以及使用方法。 首先,手册介绍了Klockwork的原理和优势。它解释了静态代码分析的概念,以及如何通过Klockwork来检测和修复代码中的潜在问题,例如空指针引用、内存泄漏和竞态条件等。 接下来,手册重点介绍了Klockwork的安装和配置过程。它提供了逐步的指导,让用户能够在自己的开发环境中成功安装和设置Klockwork。用户可以根据自己的需求选择不同的配置选项,以及与其它开发工具的集成方式。 然后,手册详细讲解了Klockwork使用方法。它介绍了如何通过Klockwork进行代码分析和检查,并解释了分析结果的含义。用户可以学习如何按照优先级对问题进行排序和管理,并通过Klockwork提供的建议和修复方案来解决这些问题。 最后,手册还包括了一些常见问题和解决方案,以及一些实际案例的讲解。这些案例演示了如何在真实的项目中使用Klockwork来改进代码质量和可维护性,帮助用户更好地理解和应用Klockwork的能力。 总之,Klockwork使用手册是一个很有价值的资源,对于希望使用Klockwork静态代码分析工具的开发人员来说,它提供了一个很好的起点。通过学习和遵循手册中的指导,开发人员可以轻松地将Klockwork集成到他们的开发流程中,从而提高代码质量、减少潜在问题,并增强代码的可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值