首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Parasoft中创建构建数据文件(bdf)?

如何在Parasoft中创建构建数据文件(bdf)?
EN

Stack Overflow用户
提问于 2017-09-13 06:05:14
回答 2查看 2.5K关注 0票数 2

我试图使用Parasoft C/C++测试来检查静态测试中的“编码标准”。我在Parasoft用户指南中只找到了“如何在Makefile项目中创建bdf”部分。

如何为每个项目创建一个bdf?是否强制使用makefile项目?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-18 09:15:53

谢谢你的回答,parasoft不是一个著名的话题。答案值一片金子。我找不到cpptesttrace。有cpptest和cpptest扫描。他们可能是吗?我用的是旧版本的parasoft。

你是对的。‘'cpptesttrace’是在Parasoft C++test版本9.4 (2012年年中)中添加的,因此很可能您使用的是版本9.2或更高版本,其中只有“cpptestscan”。

顺便说一下,下面是对C++test独立安装(不是Visual插件)中的程序的快速解释:

  • cpptest -启动C++test GUI (基于Eclipse),通常用于桌面上的交互工作
  • 用于自动化静态分析的cpptestcli - C++test命令行驱动程序,例如,作为Jenkins作业运行,
  • cpptestscan -用作编译器命令行的前缀,以捕获单个编译信息并将其添加到BDF文件中。
  • cpptesttrace -(自Parasoft C++test 9.4以来)用作构建命令行的前缀,捕获所有编译命令并保存在BDF文件中

cpptestscan和cpptesttrace的主要区别是:

  • cpptestscan必须加到每个编译命令行。这意味着cpptestscan只能捕获单个编译,并一次将一个保存到BDF中。这通常是通过覆盖make或CXX变量来完成的(指定编译器,例如"cpptestscan g++ -c foo.c -o foo.o")。
  • cpptestrace意味着在整个build命令中预置一次,它跟踪build命令调用的子进程。所有可识别为编译器调用的进程的记录都存储在BDF中。

如果makefile或build脚本足够灵活,允许在命令行覆盖编译器,则cpptestscan是很好的。

代码语言:javascript
复制
make CXX="cpptestscan g++" CC="cpptestscan gcc"

通常情况下,基于make的项目是可能的。对于自定义或自动生成的构建脚本,所有的投注都取消了.通常,唯一的选择是修改项目构建脚本,人们通常对此感到紧张。在这种情况下,cpptesttrace可以提供帮助,因为它是完全非侵入性的,并且可以从几乎任何构建过程中捕获构建信息。

回到这篇文章的最初问题,如果您有多个项目:

  • 使用cpptestscan,您需要在每个项目的构建脚本中以cpptestscan为编译器前缀,以创建相应的BDF。
  • 使用cpptesttrace,您可以为每个项目运行build --在每个项目的build命令之前添加cpptesttrace来创建相应的BDF --后者通常更容易,但是您需要更新的C++test (最新版本是10.3)。

我希望这能帮上忙。顺便问一下,看看Parasoft是否可以升级你的C++test。

票数 5
EN

Stack Overflow用户

发布于 2017-09-15 12:31:59

使用make文件不是强制性的。Parasoft C++test有一个名为C++test的工具,它监视构建过程并收集编译器调用以创建BDF文件。

cpptesttrace可以与任何构建过程一起使用,无论它是make、shell脚本,甚至是IDE中的构建(如果没有命令行构建,最后才能使用)。

cpptesttrace是如何工作的:

  • 您只需在原始构建命令行的前面加上“cpptesttrace”和几个选项,然后运行您的正常构建。
  • 确保运行完全重构(例如,“清除所有”),以确保BDF包含有关属于您的构建的所有源的信息,以及它们是如何编译的。
  • cpptesttrace有一组内置的受支持编译器,您可以通过运行‘cpptesttraceHelp’看到编译器的可执行模式。如果您的GNU GCC编译器名称是“不寻常的”,您可以重新定义模式cpptesttrace正在寻找。
  • 在遇到麻烦时,您可以随时与Parasoft支持联系。

示例1:

我将给出一个make示例:),但它可能是scon、jam或Python或.bat:假设我的完整构建如下所示:

代码语言:javascript
复制
 make clean all

我可以使用cpptesttrace运行构建,使用cpptesttrace: cpptesttrace使其干净--这将监视整个构建,并从运行中创建一个BDF文件。

示例2:

如果您的构建是具有脚本的多级进程,或者在此过程中更改文件夹,那么最好告诉cpptesttrace一个BDF的绝对位置。扩展上面的示例,我们可以运行:

代码语言:javascript
复制
cpptesttrace --cpptesttraceOutputFile=`pwd`/cpptest.bdf  make clean all

这将确保BDF路径是绝对的,无论在哪个源树级调用cpptesttrace。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46189980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档