Analyzing Program Performance With Sun WorkShop

Errors Reported by tcov Runtime

The following error messages may be reported by the tcov runtime routines:


tcov_exit: Could not open coverage data file 'coverage data file name' because 'system error message string'.

The user running the binary lacks permission to read or write to the coverage data file. The problem also occurs if the coverage data file has been deleted.


tcov_exit: Could not write coverage data file 'coverage data file name' because 'system error message string'.

The user running the binary lacks permission to write to the directory containing the coverage data file. The problem also occurs if the directory containing the coverage data file is not mounted on the machine where the binary is being run.


tcov_exit: Failed to create lock file 'lock file name' for coverage data file 'coverage data file name' after 5 tries. Is someone else running this executable?

Too many users are trying to update a coverage data file at the same time. The problem also occurs if a machine has crashed while a coverage data file is being updated, leaving behind a lock file. In the event of a crash, the longer of the two files should be used as the post-crash coverage data file. Manually remove the lock file.


tcov_exit: Stdio failure, probably no memory left.

No memory is available, and the standard I/O package will not work. You cannot update the coverage data file at this point.


tcov_exit: Coverage data file path name too long (length characters) 'coverage data file name'.

The lock file name contains six more characters than the coverage data file name; therefore, the derived lock file name may not be legal.


tcov_exit: Coverage data file 'coverage data file name' is too short. Is it out of date?

A library or binary with tcov profiling enabled is simultaneously being run, edited, and recompiled. The old binary expects a coverage data file of a certain size, but the editing often changes that. If the compiler creates a new coverage data file at the same time the old binary is trying to update the old coverage data file, the binary may see an apparently empty or corrupt coverage file.