DOI: 10.5281/zenodo.5438760
title: Artifacts for Code Coverage Profiler Validation with Debugging Support

description: <strong>Code Coverage Profiler Validation with Debugging Support</strong> Table of Contents Background Install Usage Experiment Violations Bugs <strong>Background</strong> <strong>DeCov</strong> is the tool for code coverage profiler validation with debugging support. We totally submit 24 bug reports for gcov and llvm-cov. Of these 24 bug reports, 18 are confirmed/fixed by developers, 2 are marked as duplicate, and the other 4 bug reports are waiting for the developers' confirmation. <strong>Install</strong> This project uses gcc, gdb, llvm and lldb. Go check them out if you don't have them locally installed. <code>apt install gcc gdb llvm lldb </code> <strong>Usage</strong> To use DeCov for gcov validation: <code>python3 decov-gcov-pexpect.py -s test.c </code> or <code>python3 decov-gcov-pexpect.py -s testprograms </code> To use DeCov for llvm-cov validation: <code>python3 decov-llvmcov-pexpect.py -s test.c </code> or <code>python3 decov-llvmcov-pexpect.py -s testprograms </code> <strong>Experiment</strong> First, download the gcc-10.1.0.tar.xz: <code><code>wget http://ftp.gnu.org/gnu/gcc/gcc-10.1.0/gcc-10.1.0.tar.xz </code></code> Then, unzip gcc-10.1.0: <code>tar -xvf gcc-10.1.0.tar.xz </code> Finally, run Decov over the testsuite of gcc-10.1.0: <code>python3 decov-gcov-pexpect.py -s gcc-10.1.0/gcc/testsuite/ </code> or <code>python3 decov-llvmcov-pexpect.py -s gcc-10.1.0/gcc/testsuite/ </code> Note that, we recommend to use the parallel option when using our tool if your computer has multi-cores: <code>python3 decov-gcov-pexpect.py --parallel -s gcc-10.1.0/gcc/testsuite/ </code> or <code>python3 decov-llvmcov-pexpect.py --parallel -s gcc-10.1.0/gcc/testsuite/ </code> <strong>Violations</strong> Experimental data are in the Expr folder: files-DIFFCOV-gcc.txt and files-DIFFCOV-clang.txt list the filenames in the testsuites of GCC-10.1.0 that the coverage statistics from coverage profilers inconsistent with the hit count from debuggers DIFFCOV-Gcov-vs-GDB.txt and DIFFCOV-LLVMcov-vs-LLDB.txt list the filesname and the the respected lines of code that violating <em>HMR</em>, coverage statistics is not consistent with the hit count files-SAMECOV-gcc.txt and files-SAMECOV-clang.txt list the filenames in the testsuites of GCC-10.1.0 that the coverage statistics from coverage profilers consistent with the hit count from debuggers. files-CPLERROR-gcc.txt and files-CPLERROR-clang.txt list the filenames in the testsuites of GCC-10.1.0 that cannot be correctly compiled independently by respected compilers <strong>Bugs</strong> Bugs reported by <strong>DeCov</strong> for LLVM-cov: llvm-cov 48818 Status History: "NEW" llvm-cov 48795 Status History: "NEW" llvm-cov 48278 Status History: "NEW" -&gt; "DUPLICATE" llvm-cov 48264 Status History: "NEW" -&gt; "INVALID" -&gt; "REOPENED" llvm-cov 48263 Status History: "NEW" llvm-cov 45850 Status History: "New" -&gt; "CONFIRMED" llvm-cov 45849 Status History: "New" -&gt; "FIXED" -&gt; "REOPENED" -&gt; "FIXED" llvm-cov 45846 Status History: "NEW" -&gt; "CONFIRMED" llvm-cov 45845 Status History: "NEW" -&gt; "CONFIRMED" llvm-cov 45844 Status History: "NEW" -&gt; "DUPLICATE" llvm-cov 45821 Status History: "NEW" -&gt; "CONFIRMED" llvm-cov 45678 Status History: "NEW" -&gt; "CONFIRMED" llvm-cov 45595 Status History: "NEW" -&gt; "CONFIRMED" Bugs reported by <strong>DeCov</strong> for Gcov: gcov 97925 Status History: "UNCONFIRMED" -&gt; "NEW" gcov 97924 Status History: "UNCONFIRMED" -&gt; "NEW" gcov 97923 Status History: "UNCONFIRMED" -&gt; "NEW" gcov 97917 Status History: "UNCONFIRMED" -&gt; "NEW" gcov 97910 Status History: "UNCONFIRMED" -&gt; "NEW" gcov 93757 Status History: "UNCONFIRMED" -&gt; "NEW" gcov 93735 Status History: "UNCONFIRMED" -&gt; "NEW" gcov 93726 Status History: "UNCONFIRMED" -&gt; "WAIT" gcov 93725 Status History: "UNCONFIRMED" -&gt; "NEW" gcov 93706 Status History: "UNCONFIRMED" -&gt; "NEW" gcov 93680 Status History: "UNCONFIRMED" -&gt; "NEW"