'cov-emit process hangs and Coverity build never completes

I need to exclude a C++ source file from coverity build. This file is called XMLHelperUtil.cpp and is part of one of the many C++ projects included in the solution that I'm building. I tried adding it to the XML configuration file but without any success.

I did the following:

(1) Created a config file with the command:

cov-configure --config e:\temp\my_config.xml --msvc --xml-option=skip_file:"XMLHelperUtil.cpp"

This creates a series of templates for msvc that includes the following skip_file node:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE coverity SYSTEM "coverity_config.dtd">
<coverity>
<!-- THIS FILE IS AUTOMATICALLY GENERATED - YOU MAY ADD XML ENTITIES -->
<!-- TO UPDATE THE COMPILER CONFIGURATION AFTER THE begin_command_line_config CLOSING TAG. -->
    <cit_version>1</cit_version>
    <config>
      <build>
        <compiler>
          <template_compiler>true</template_compiler>
          <comp_name>devenv</comp_name>
          <comp_translator>msvc_devenv</comp_translator>
          <comp_lang>C</comp_lang>
          <comp_generic>msvc</comp_generic>
        </compiler>
        <options>
          <id>msvc_devenv-devenv-.*</id>
          <opt_preinclude_file>$CONFIGDIR$/../user_nodefs.h</opt_preinclude_file>
          <begin_command_line_config></begin_command_line_config>
          <skip_file>XMLHelperUtil.cpp</skip_file>
        </options>
      </build>
    </config>
    <md5>e471f73f8137b3bb42fd78a4695ff14f</md5>
</coverity>

(2) Built the project with the following command:

cov-build --config e:\temp\my_config.xml 
          --dir "E:\cov-int-out" 
          "d:\Program Files\Microsoft Visual Studio\2022\Professional\Msbuild\Current\Bin\MSBuild" 
          "<path>\mysolution.sln" /p:Configuration=Release /p:Platform=x64

The file is not skipped. What am I doing wrong?

References:

UPDATE Reading the build_log.txt file, I can see that the file is actually skipped:

[STATUS] Ignoring file XMLHelperUtil.cpp because file "<path>\XMLHelperUtil.cpp" matches skip_file pattern "XMLHelperUtil"

I can see that it continues with other files and the it stops here:

..|cov-translate|5052|output|> "FilePath.cpp": using precompiled header file "E:\cov-int\emit\pch\__coverity_ms_pch__1"
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> "..\PtrRefCtr_.h", line 290: warning #1087: the object has type
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>           qualifiers that are not compatible with the member function
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>           "CPtrRefCtrBase::Validate"
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>             object type is: const CPtrRefCtrBase
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>               Validate();
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>               ^
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> "..\PtrRefCtr_.h", line 383: warning #442: argument list for class
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>           template "CRefCtrAuto" is missing
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>            CRefCtrCom( Pointee *pObj ): CRefCtrAuto(pObj) { (this)->AddRef(); }
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>                                         ^
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> catastrophic signal: C0000005 (EXCEPTION_ACCESS_VIOLATION)
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> tried to read from addr 0x0000000000000064
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> call stack backtrace:
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> cov-emit.exe mingw64 2021.9.0
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000f7f3e0
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004b2167
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000f7f39d
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000f7f6fb
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> KERNELBASE.dll mingw64 2021.9.0
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000001800e1922
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> ntdll.dll mingw64 2021.9.0
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00007ff8dc0eec73
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00007ff8dc0d18b6
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00007ff8dc0e2f3d
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00007ff8dc0a4557
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00007ff8dc0e20ca
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> cov-emit.exe mingw64 2021.9.0
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004b2167
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004f880f
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000515463
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000515bb4
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004d77d1
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004f87d8
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004f90ba
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000560fa0
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x000000000050f98b
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x000000000050fb25
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000005110c6
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000561308
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000005154f3
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000515aa5
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004c0dfd
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004f89d0
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000515463
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000515998
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004cee81
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004f85ff
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000515463
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000515aa5
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004cee81
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004f85ff
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004f90ba
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000560fa0
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x000000000051085a
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000699690
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000006aa44c
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000633fbd
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000635511
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x000000000063629e
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000638096
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000638a7f
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000006390ce
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004f06d5
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000673f02
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000006724fa
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x000000000053d079
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x000000000053e51b
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004949ae
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x000000000048e405
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x000000000048e9fe
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x0000000000490e5e
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x00000000004928c3
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> (last 4 repeated 2 more times)
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|>   0x000000000048e405
..|cov-translate|5052|output|> 
..|cov-translate|5052|output|> WARNING: cov-emit returned with code 4 for FilePath.cpp

Nothing happens after this. There are many cov-emit processes running:

enter image description here

If I start killing one process at a time, at some point it restarts. I see new things coming up in the log. There is no new output in the console though, and after processing a few files it stops in the same manner.



Solution 1:[1]

After contacting Synopsys support (https://community.synopsys.com/s/case/5002H00001OYqCTQA1/covemit-hangs-all-the-time) it was confirmed that the problem for the hangs is Coverity's current lack of support for Visual Studio 2022, which will come at some point in 2022.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Marius Bancila