BullseyeCoverage Up Contents Search

Object ID Collision

Symptoms

filename: object ID collision

Cause

Multiple copies of a coverage file were used to build different object files, then were merged together.

Resolution

Do not use a coverage file for building after it is copied. When you perform separate builds, create separate coverage files for each build.

For example, at the beginning of your build process, you may wish to create the coverage file with a set exclusions. To do this properly, do not make a copy of a coverage file that already contains the exclusions, but rather create the coverage file directly using the covselect command.

cp exclusions.cov $COVFILE          ← wrong
covselect --import exclusions.txt   ← correct

More Information

Each object file is identified by a unique ID number. Object IDs are assigned sequentially, starting with a random number. This random number is generated and stored in the coverage file when it is created. If a coverage file is copied, and then object files are added to different copies, the same object ID may be assigned to different objects, which is a collision.

Updated: 30 Jul 2024