BullseyeCoverage
The linker reports unresolved symbols with prefix cov_
,
including cov_probe_v12
.
Possible causes and resolutions are listed below.
You are attempting to build with BullseyeCoverage disabled, but some object files or libraries contain instrumented code from a previous build produced with BullseyeCoverage enabled.
With coverage build disabled, do a clean build of all object files and libraries included in the link command that failed. If the problem persists, you did not do a completely clean build.
The coverage build setting changed during your build. For example, the cov01 command was invoked before your build finished. By default, the coverage build setting affects all sessions for the user.
In the build output,
the BullseyeCoverage banner stops occurring, and then a link command produces the unresolved symbol error.
Note: do not use covc option -q
/--quiet
or --no-banner
when diagnosing this cause.
BullseyeCoverage Compile C++ ← banner present Copyright (c) Bullseye Testing Technology compile command ... BullseyeCoverage Compile C++ ← banner present Copyright (c) Bullseye Testing Technology compile command ... ← banner stops compile command ... ← banner missing compile command ... ← banner missing link command ... error: unresolved symbol cov_probe_v12
Make the coverage build setting local to your session by setting the COVBUILDZONE environment variable to a value unique to the session.
Your project is properly integrated with BullseyeCoverage for compiling but not for linking.
In the build output, the BullseyeCoverage banner occurs before all compile commands, but not before link commands that produce the unresolved symbol error.
BullseyeCoverage Compile C++ ← banner present Copyright (c) Bullseye Testing Technology compile command ... BullseyeCoverage Compile C++ ← banner present Copyright (c) Bullseye Testing Technology compile command ... ← banner missing link command ... error: unresolved symbol cov_probe_v12
See Integrating With Your Build Process.
You are targeting an embedded system for which there is no automatically linked run-time library.
Check Configuring Development Systems for instructions specific to your target.
If there are no instructions specific to your target, see Embedded Systems.
The covc
option --no-lib
is enabled.
Enable covc option -v
with this command:
echo -v >>"%USERPROFILE%\covc.cfg ← Windows echo -v >>$HOME/covc.cfg ← Unix-like shell
Rebuild your project and look for --no-lib
in the build output.
arguments=BullseyeCoverage/bin/covc -v --no-lib ... cfg=[directory/covc.cfg=--no-lib]
Remove the option from your build settings or configuration file.
This option may occur in homedir/covc.cfg
or BullseyeCoverage/bin/covc.cfg
.
There is a BullseyeCoverage run-time library version mismatch.
The numeric component of the cov_probe symbol differs from that shown above.
Remove all BullseyeCoverage run-time libraries, then reinstall the product to restore the run-time libraries. If you built your own run-time library, rebuild it using the supplied run-time sources.
Your link command includes an object or library named libcov
*,
but it does not implement the BullseyeCoverage small footprint run-time.
Look for a filename libcov
* in your build log.
Rename the file so that it does not begin with libcov
.
A Linux kernel module was instrumented but the module does not specify an initialization entry point.
See Linux Kernel Modules section Module Initialization.
The number in the symbol is not related to the product version number.
Do not add the BullseyeCoverage run-time library to your link command unless you have a specially built version of the BullseyeCoverage run-time library for an embedded target. For most targets, the BullseyeCoverage compiler and linker interceptors automatically modify the link command to add the correct run-time library for the target platform, add required system libraries, and ensure proper ordering of libraries. For Windows DLLs in particular, BullseyeCoverage makes numerous non-trivial changes.
Updated: 4 Sep 2024
Copyright © Bullseye Testing Technology. All Rights Reserved.