Parasoft C/C++test 常见问题整理大全(三)

2,079 阅读3分钟

Parasoft C/C++test帮助团队写出更好的代码,实施更有效的测试,以及持续地监视以实现质量目标。 C / C ++test可以进行静态分析,全面代码审查,运行时错误检测,并在单元测试和组件测试中集成覆盖率分析。这些能够在开发周期的开始阶段,在开发桌面上自动完成。

一、C/C++测试无法启动。

在启动CppTest时,经常会挂起并且无法启动。在加载一些svn或mylyn相关插件时加载过程停止。只有卸载并重新安装该软件才能再次使用。

在这种情况下首先要搞清楚:

  • 主机是Windows还是Linux

  • 正在运行的C/C++ Test的确切版本(Help menu →About... →Press C/C++ Test gear icon 就可以查看到)

  • 是独立的C/C++测试还是Eclipse插件

上文提到的测试无法启动问题很可能与Eclipse IDE中的“Deadlock on startup”bug有关,它表现在某些Linux系统中多次打开一个工作区启动后挂起。一般情况下可以按照以下方案处理:

  • 使用“-clean”选项启动C/C++测试GUI(cpptest可执行文件)。这应该会从“hang”状态恢复工作区。该过程可能需要应用几次。
  • 将随C / C ++测试一起提供的Eclipse Platform升级到版本4.6.2+ 建议可以将方案1作为优先选择方案,确认问题后可以将方案2作为永久解决方案。

二、解决OutOfMemoryError:Java堆空间或GC开销。

运行基于Parasoft Test的产品时,您可能会看到错误:

  • java.lang.OutOfMemoryError:Java堆空间问题

  • 在以下期间发生内部错误:”Building workspace“。超出GC开销限制问题

这是Java内存不足时会发生此错误。

有两种解决办法:

  • 推荐减少软件使用的内存量。因为它通常涉及应用最佳实践。
  • 增加软件可用的内存量,如下所述。

为JVM分配更多内存: 在某些情况下,在处理大型测试套件或复杂方案时,可能需要增加分配给运行SOAtest / LoadTest / Virtualize的JVM的默认内存量。

32位版本默认使用896MB。64位版本默认使用1792MB - 如果使用SOAtest小于9.4 则使用896MB。 要增加最大堆大小,请将-J-Xmx参数传递给可执行文件。例如,“cpptest -J-Xmx1400m”将启动C / C ++测试,最大堆大小设置为1400MB。 提示:

  • 可以以类似的方式配置其他JVM参数。传递给可执行文件时,每个JVM参数都必须以“-J”为前缀。
  • 多个JVM参数可以与前缀为“-J”的每个参数一起传递。例如,“soatest -J-Xmx1400m -J-Xms1024m”将最大堆大小设置为1400MB,将起始堆大小设置为1024MB。

三、ERROR:无法启动进程/访问被拒绝。

运行C ++ Desktop时,需要确保C ++ Test可以执行编译器。如果您没有正确设置,您将看到如下消息:

进程执行期间出错:无法启动进程:“C:\ gcc”“ - IC:\ Apps \ Parasoft \ C ++ test \ 10.3 \ engine \ runtime \ include”-I。-DPARASOFT_CPPTEST -v -E -dM -ffreestanding -xc“C:\ Users \ ANDREY~1.MAD \ AppData \ Local \ Temp \ ParaSoft.25452.41.c”-o“C:\ Users \ ANDREY~1.MAD \ AppData \ Local \ Temp \ ParaSoft.25452.18467.c“ 访问被拒绝。

这里的问题是C:\ gcc不存在。但是我会在哪里改变它?答案在Parasoft项目设置中:

  • 右键单击项目并转到Parasoft-> C ++ Test-> Build Settings

  • 然后,您将看到需要浏览到编译器,或者如果编译器可执行文件在PATH上,则只需指定可执行文件:

使用Cygwin环境只是一个额外的注意事项,在Cygwin中,'gcc'和'g ++'可以是指向实际编译器.exe文件的UNIX风格的符号链接。但是,C ++测试必须使用常规的Windows进程API来运行编译器。Windows不会理解Cygwin使用的UNIX风格的sym-links。因此,在使用Cygwin时,您应该在Build Settings中使用编译器的实际.exe名称。

想要了解更多Parasoft C/C++ Test相关信息请点击 这里