This files provides quick checks and the usual candidates.
Return to Main Contents

Double-check the coverage report

You should double-check the coverage for plausibility, e.g. is it suspicious if a function was never called, but has some coverage in. Most likely the binary dump of the CTC_array or the conversion process for that is somehow wrong.

We have added a check, based on the assumption, that functions should have start counts when they have end counts, following message should then given by dmp2txt as early warning on stderr:

 Encountered 3 functions ended, but not started
 Most likely the dump file MON.dmp is corrupt(!)

Forgotten RUN_AFTER_INSTR = ctc2static

First have a look at Forgotten to delete MON.aux below, cause this here could be only a secondary problem.

If you encounter compiler errors like:

prime.c: In function `main':
prime.c:9: error: `ctc_s_pos' undeclared (first use in this function)
prime.c:9: error: (Each undeclared identifier is reported only once
prime.c:9: error: for each function it appears in.)
prime.c:12: error: `ctc_c_pos' undeclared (first use in this function)
prime.c:19: error: `ctc_j_pos' undeclared (first use in this function)

then you have just forgotten to set

RUN_AFTER_INSTR = ctc2static

in your compilers ctc.ini section.

RUN_AFTER_INSTR is a comma separated list, you may have also other scripts. We suggest, to use this as last.

Forgotten CTC_array

If you encounter undefined references to CTC_array, like CTC.22082.2.c:(.text+0xd): undefined reference to `CTC_array' than you must add at global scope somewhere in one file:

unsigned char CTC_array[0x1234] = {0}; where 0x1234 is reasonable big enough.

Application crashes early at runtime

Check that the size of CTC_array is reasonable enough.

Forgotten to delete MON.aux

If you encounter

 Entry for prime.c with wrong amount of counters in  ./MON.aux!
 Do a make clean, delete ./MON.aux, rebuild!
 Exiting, this will not work!!!!!!!!!

 CTC++ error 30: Cannot execute the user-specified command or the com....

then a correct CTC_array memory placement could not be determined by ctc2static array script. We break compilation here, cause this will not work. We'll run in memory fragmentation problems, if we would set the counters here, and subsequently the CTC_array needs to have a bigger size then calulated by the any2mem utility

Old ic86/ic96 compiler macros

It's impossible to just include ctc.h for the stone-age compilers. The macros are then "inlined" using ctc2static. In the meantime, it seams that these compilers simly doesn't like line-continuations used in ctc.h, we'll see, next version. Offenburg, in June 2009