如何在 Parasoft 中创建构建数据文件 (bdf)?
How to create build data file (bdf) in Parasoft?
我正在尝试使用 Parasoft C/C++ 测试通过静态测试来检查 "Coding Standards"。我在 Parasoft 用户指南中只找到 "How to create bdf in Makefile projects" 部分。
如何为每个项目创建一个 bdf?是否必须使用 makefile 项目?
使用 make 文件不是强制性的。
Parasoft C++test 有一个名为“cpptesttrace”的工具,它监视构建过程并收集编译器调用以创建 BDF 文件。
cpptesttrace 可以与任何构建过程一起使用,无论是 make,shell 脚本,还是在 IDE 中构建(如果没有可用的命令行构建,最后的手段)。
cpptesttrace 的工作原理:
- 您只需要在您的原始构建命令行前加上 'cpptesttrace' 和几个选项,以及 运行 您的正常构建
- 确保 运行 完全重建(例如 'make clean all')以确保 BDF 包含有关属于您的构建的所有源的信息,以及它们是如何编译的
- cpptesttrace 内置了一组支持的编译器,您可以通过 运行ning 'cpptesttrace --cpptesttraceHelp' 查看编译器可执行模式。如果您的 GNU GCC 编译器名称是 "unusual",您可以重新定义 cpptesttrace 正在寻找的模式。
- 如有问题,您可以随时联系 Parasoft 支持
示例 1:
我将给出一个 make 文件示例 :),但它可以是 scons、jam 或 Python 脚本,或 .bat:
假设,我的 full 构建是这样完成的:
make clean all
我可以 运行 构建如下,使用 cpptesttrace:
cpptesttrace 清除所有
这将监控整个构建并从 运行.
创建一个 BDF 文件
示例 2:
如果您的构建是使用脚本的多级过程或在此过程中更改文件夹,最好告诉 cpptesttrace BDF 的绝对位置。扩展上面的例子,我们可以 运行:
cpptesttrace --cpptesttraceOutputFile=`pwd`/cpptest.bdf make clean all
这将确保 BDF 路径是绝对路径,无论在哪个源代码树级别调用 cpptesttrace。
Thanks for your answer, parasoft is not a reputed topic.
Answers are worth a piece of gold. I couldn't find cpptesttrace.
There are cpptest and cpptestscan. Could they be? I use an old version of parasoft.
你是对的。 'cpptesttrace' 已添加到 Parasoft C++test 9.4 版(2012 年中),因此您可能使用的是 9.2 或更早版本,其中仅存在 'cpptestscan'。
顺便说一句,这里是 C++test 独立安装程序的快速解释(不是 Visual Studio 插件):
- cpptest - 启动 C++test GUI(基于 Eclipse),通常用于桌面上的交互式工作
- cpptestcli - 用于自动执行静态分析的 C++ 测试命令行驱动程序,例如运行宁作为詹金斯的工作,
- cpptestscan - 用作编译器命令行的前缀以捕获单个编译信息并将其添加到 BDF 文件
- cpptesttrace -(自 Parasoft C++test 9.4 起)用作构建命令行的前缀,以捕获所有编译命令并保存在 BDF 文件中
cpptestscan 和 cpptesttrace 的主要区别在于:
- cpptestscan 必须添加到每个编译命令行。这意味着,cpptestscan 只能捕获单个编译,并一次将一个保存到 BDF 中。这通常是通过覆盖 make CC 或 CXX 变量(指定编译器,例如 "cpptestscan g++ -c foo.c -o foo.o")来完成的。
- cpptestrace 是为了在整个构建命令之前添加一次,它跟踪构建命令调用的子进程。识别为编译器调用的所有进程的记录都存储在 BDF 中。
如果 makefile 或构建脚本足够灵活以允许在命令行覆盖编译器,则 cpptestscan 很好,例如
make CXX="cpptestscan g++" CC="cpptestscan gcc"
基于 make 的项目通常是可能的。对于自定义或自动生成的构建脚本,一切皆有可能。通常,唯一的选择是修改项目构建脚本,人们通常对此感到紧张。
在这种情况下,cpptesttrace 可以提供帮助,因为它是完全非侵入式的,并且可以从几乎任何构建过程中捕获构建信息。
回到这个post的原始问题,如果你有多个项目:
- 使用 cpptestscan,您需要在每个项目的构建脚本中以某种方式为编译器添加前缀 cpptestscan 以创建相应的 BDF
- 使用 cpptesttrace,您可以 运行 为每个项目构建,在每个项目的构建命令前添加 cpptesttrace 以创建相应的 BDF
后者通常更容易,但您需要更新的 C++test(最新版本是 10.3)。
希望对您有所帮助。
顺便说一句:如果您可以升级您的 C++ 测试,请咨询 Parasoft。
我正在尝试使用 Parasoft C/C++ 测试通过静态测试来检查 "Coding Standards"。我在 Parasoft 用户指南中只找到 "How to create bdf in Makefile projects" 部分。
如何为每个项目创建一个 bdf?是否必须使用 makefile 项目?
使用 make 文件不是强制性的。
Parasoft C++test 有一个名为“cpptesttrace”的工具,它监视构建过程并收集编译器调用以创建 BDF 文件。
cpptesttrace 可以与任何构建过程一起使用,无论是 make,shell 脚本,还是在 IDE 中构建(如果没有可用的命令行构建,最后的手段)。
cpptesttrace 的工作原理:
- 您只需要在您的原始构建命令行前加上 'cpptesttrace' 和几个选项,以及 运行 您的正常构建
- 确保 运行 完全重建(例如 'make clean all')以确保 BDF 包含有关属于您的构建的所有源的信息,以及它们是如何编译的
- cpptesttrace 内置了一组支持的编译器,您可以通过 运行ning 'cpptesttrace --cpptesttraceHelp' 查看编译器可执行模式。如果您的 GNU GCC 编译器名称是 "unusual",您可以重新定义 cpptesttrace 正在寻找的模式。
- 如有问题,您可以随时联系 Parasoft 支持
示例 1:
我将给出一个 make 文件示例 :),但它可以是 scons、jam 或 Python 脚本,或 .bat: 假设,我的 full 构建是这样完成的:
make clean all
我可以 运行 构建如下,使用 cpptesttrace: cpptesttrace 清除所有 这将监控整个构建并从 运行.
创建一个 BDF 文件示例 2:
如果您的构建是使用脚本的多级过程或在此过程中更改文件夹,最好告诉 cpptesttrace BDF 的绝对位置。扩展上面的例子,我们可以 运行:
cpptesttrace --cpptesttraceOutputFile=`pwd`/cpptest.bdf make clean all
这将确保 BDF 路径是绝对路径,无论在哪个源代码树级别调用 cpptesttrace。
Thanks for your answer, parasoft is not a reputed topic. Answers are worth a piece of gold. I couldn't find cpptesttrace. There are cpptest and cpptestscan. Could they be? I use an old version of parasoft.
你是对的。 'cpptesttrace' 已添加到 Parasoft C++test 9.4 版(2012 年中),因此您可能使用的是 9.2 或更早版本,其中仅存在 'cpptestscan'。
顺便说一句,这里是 C++test 独立安装程序的快速解释(不是 Visual Studio 插件):
- cpptest - 启动 C++test GUI(基于 Eclipse),通常用于桌面上的交互式工作
- cpptestcli - 用于自动执行静态分析的 C++ 测试命令行驱动程序,例如运行宁作为詹金斯的工作,
- cpptestscan - 用作编译器命令行的前缀以捕获单个编译信息并将其添加到 BDF 文件
- cpptesttrace -(自 Parasoft C++test 9.4 起)用作构建命令行的前缀,以捕获所有编译命令并保存在 BDF 文件中
cpptestscan 和 cpptesttrace 的主要区别在于:
- cpptestscan 必须添加到每个编译命令行。这意味着,cpptestscan 只能捕获单个编译,并一次将一个保存到 BDF 中。这通常是通过覆盖 make CC 或 CXX 变量(指定编译器,例如 "cpptestscan g++ -c foo.c -o foo.o")来完成的。
- cpptestrace 是为了在整个构建命令之前添加一次,它跟踪构建命令调用的子进程。识别为编译器调用的所有进程的记录都存储在 BDF 中。
如果 makefile 或构建脚本足够灵活以允许在命令行覆盖编译器,则 cpptestscan 很好,例如
make CXX="cpptestscan g++" CC="cpptestscan gcc"
基于 make 的项目通常是可能的。对于自定义或自动生成的构建脚本,一切皆有可能。通常,唯一的选择是修改项目构建脚本,人们通常对此感到紧张。 在这种情况下,cpptesttrace 可以提供帮助,因为它是完全非侵入式的,并且可以从几乎任何构建过程中捕获构建信息。
回到这个post的原始问题,如果你有多个项目:
- 使用 cpptestscan,您需要在每个项目的构建脚本中以某种方式为编译器添加前缀 cpptestscan 以创建相应的 BDF
- 使用 cpptesttrace,您可以 运行 为每个项目构建,在每个项目的构建命令前添加 cpptesttrace 以创建相应的 BDF 后者通常更容易,但您需要更新的 C++test(最新版本是 10.3)。
希望对您有所帮助。 顺便说一句:如果您可以升级您的 C++ 测试,请咨询 Parasoft。