I tried OpenCppCoverage (https://github.com/Unity-Technologies/OpenCppCoverage) 0.9.3 on SumatraPDF.
I installed 64-bit version from the installer on Win 10. I ran OpenCppCoverage.exe --sources sumatra -- .\dbg64\SumatraPDF.exe, opened a file, closed the program.
--sources limits reporting to only files whose paths match a given pattern. Using sumatra for pattern matches all our source files, assuming the sources were checked out to sumatrapdf directory (because sumatra matches sumatrapdf in file path) and skips the sources for C/C++ libraries.
It generated CoverageReport-${date} directory with HTML report. There’s top-level index.html with links to html file for each module (SumatraPDF.exe in our case).
They recommend running on debug code.
At the end it reports generating reports for system dlls, but also says can’t get symbols, so it doesn’t actually generate anything.
The html report isn’t great. Another option would be to use --export_type=binary option which generates SumatraPDF.cov file and write html generator myself. I assume the format of .cov file is simple.