Code coverage with Xcode 4.2 - Missing files Code coverage with Xcode 4.2 - Missing files xcode xcode

Code coverage with Xcode 4.2 - Missing files


You are expecting linker problem, profile_rt library uses fopen$UNIX2003 and fwrite$UNIX2003 functions instead of fopen and fwrite.

All you need is to add the following .c file to your project:

#include <stdio.h>FILE *fopen$UNIX2003( const char *filename, const char *mode ){    return fopen(filename, mode);}size_t fwrite$UNIX2003( const void *a, size_t b, size_t c, FILE *d ){    return fwrite(a, b, c, d);}

This code just remaps the missing functions to standard ones.

Note on $UNIX2003 suffix:

I've found an Apple document saying:

The UNIX™ conformance variants use the $UNIX2003 suffix.

Important: The work for UNIX™ conformance started in Mac OS 10.4, but was not completed until 10.5. Thus, in the 10.4 versions of libSystem.dylib, many of the conforming variant symbols (with the $UNIX2003 suffix) exist. The list is not complete, and the conforming behavior of the variant symbols may not be complete, so they should be avoided.

Because the 64-bit environment has no legacy to maintain, it was created to be UNIX™ conforming from the start, without the use of the $UNIX2003 suffix. So, for example, _fputs$UNIX2003 in 32-bit and _fputs in 64-bit will have the same conforming behavior.

So I expect libprofile_rt to be linked against 10.4 SDK.


I use CoverStory http://code.google.com/p/coverstory/ a GUI for .gcda and .gcno files.

The documentation explains the settings needed to generate these files http://code.google.com/p/coverstory/wiki/UsingCoverstory.