我是Coverity的新手,我在命令提示符下使用它的.exe文件。所以我想在封面cov-build.exe中传递特定的宏,以便在cov-emit.exe时实现这些宏(当它被cov-build.exe调用时)正在解析.c文件。现在我已经尝试了下面说明的配置。
code-build.exe Intermediate_folder --delete-stale-tus --preprocessor-first --return-emit-failure "My_bat_file" -- -D My_macro_name=my_macro_body
所以任何帮助都会受到赞赏。我坚持这一点。
谢谢和问候,
Newbie_in
答案 0 :(得分:0)
cov-build包装您现有的构建命令,监视它并生成并行编译器调用以理解您的代码。这些并行编译器调用将看到传递给您自己的编译器的相同命令行。
因此,如果您希望此定义对您的编译器以及Coverity生效,那么您只需将其添加到您的构建中,就像通常那样,Coverity将会看到它。
如果要添加只有Coverity编译器可以看到的定义,最好在编译器的配置中完成。
您可以直接编辑配置(添加
<append_arg>-Dmy_macro_name=my_macro_body</append_arg>
在<begin_command_line_config>
行之后),或使用--xml-option
重新配置。
例如,如果您使用快捷方式gcc配置,则它将如下所示:
$ cov-configure --gcc --xml-option=append_arg>-Dmy_macro_name=my_macro_body.
我注意到你在cov-build命令行上使用--preprocess-first
- 我建议不要这样做,因为它会破坏XREF,使得浏览缺陷信息变得更加困难,并且使得分析无法进行找到一些缺陷(即由宏引起的缺陷)。 --preprocess-next
的行为与--preprocess-first
类似,只有在初始编译尝试失败时才会触发,因此如果您使用--preprocess-first
来解决编译问题,我强烈建议您使用--preprocess-接下来。
如果您确实遇到编译问题,最好将它们(以及复制器)报告给Coverity支持,以便在将来的版本中修复它们。