Special "-hard" Mode of ctcwrap

There is a special option, -hard, that can be used with ctcwrap in some situations, changing the behavior of ctcwrap completely.

This mode was implemented for situations where the compile and link commands are emitted by the build system with an absolute or relative path, not using the environment variable PATH.

Note: There are side effects and disadvantages when ctcwrap -hard is used. Very often, ctclaunch offers a way to integrate Testwell CTC++ in a build system on Windows without these disadvantages. Please consider to use ctclaunch instead, and ask Verifysoft for support if needed.

Command line syntax

ctcwrap -hard {-modeon [ctc-options] | -modeoff [-v]} compiler [linker]

Assume we have compiler xcc, which resides at C:\Program files\XSys\xcc.exe, and the build system invokes the compiler with that path.

Then an example process to use ctcwrap -hard is:
ctcwrap -hard -modeon -i d -v "C:\Program files\XSys\xcc" "C:\Program files\XSys\xlink"
make -f xprogram1.mak clean all
ctcwrap -hard -modeoff -v "C:\Program files\XSys\xcc" "C:\Program files\XSys\xlink"

With the -modeon/ -modeoff options, ctcwrap -hard works as a general switch for instrumentation at the system as a whole. The call to the build system is separated, and after that, instrumentation has to be switched off again.

With -modeon, the ctc options are the same as you would use normally. With -modeoff, only -v (verbose) option is meaningful.

Side Effects

When the instrumentation is generally switched on with -modeon, the compiler is temporarily renamed and replaced with an agent from Testwell CTC++. Hence it is not possible to use ctcwrap -hard without write access to the compiler directory, and all builds with that compiler will be instrumented builds.
Note: With ctcwrap -hard, the compiler and linker commands configured in %CTCHOME%\wrapcmds.txt are not used. The compiler is, with its full path, a necessary option in the command line call.