Partial Instrumentation on File Level
With the three configuration parameters EXCLUDE, NO_EXCLUDE and NO_INCLUDE it is defined which source code files are instrumented by ctc.
A standard setting of these parameters is
			
		EXCLUDE = %INCLUDES% NO_EXCLUDE = NO_INCLUDE =where %INCLUDES% means: "code coming from a file #included outside of functions" - header files, typically.
These three parameters are always evaluated in that order.
Exclude some files
To exclude a specific list of files from being instrumented (not from being compiled!), the
				EXCLUDE parameter is used, either in the configuration file or via command line. If
				the build is done with ctcwrap for example, with
				
		ctcwrap –i m –C EXCLUDE+file2.cpp ...EXCLUDE = %INCLUDES%, file2.c NO_EXCLUDE = NO_INCLUDE =
Instrument only some files
To instrument a specific list of files only, a combination of EXCLUDE and NO_EXCLUDE
				is used. For example, with
				
		ctcwrap –i m –C EXCLUDE=* -C NO_EXCLUDE=file2.cpp ... Header files/ Included files
Header files are generally treated the same way by these parameters. Usually system
				headers shall not be instrumented, hence the setting 
			EXCLUDE =
					%INCLUDES% is delivered in ctc.ini. With this
				command for example
				ctcwrap -C "NO_EXCLUDE=*\afile.h" ...If the #include clause is inside a function body, the EXCLUDE, NO_EXCLUDE, NO_INCLUDE parameters are not consulted. Instead the rule is: If the function itself is instrumented, the code snippet that the function-internal #include brings is also instrumented.
Full Example
 With the setting
				
		EXCLUDE=* NO_EXCLUDE=*\dir5\*,*\dir7\* NO_INCLUDE=%INCLUDES%,*\dir5\subdir\*all files from dir5 and dir7 are instrumented except the files from dir5\subdir and except all included files.