Determines whether routine entry and exit points are instrumented.
IA-32, Intel® 64, IA-64 architectures
Linux and Mac OS X: | -finstrument-functions -fno-instrument-functions |
Windows: | /Qinstrument-functions /Qinstrument-functions- |
None
-fno-instrument-functions |
Routine entry and exit points are not instrumented. |
This option determines whether routine entry and exit points are instrumented. It may increase execution time.
The following profiling functions are called with the address of the current routine and the address of where the routine was called (its "call site"):
This function is called upon routine entry:
On IA-32 architecture and Intel® 64 architecture:
void __cyg_profile_func_enter (void *this_fn,
void *call_site);
On IA-64 architecture:
void __cyg_profile_func_enter (void **this_fn,
void *call_site);
This function is called upon routine exit:
On IA-32 architecture and Intel® 64 architecture:
void __cyg_profile_func_exit (void *this_fn,
void *call_site);
On IA-64 architecture:
void __cyg_profile_func_exit (void **this_fn,
void *call_site);
On IA-64 architecture, the additional de-reference of the function pointer argument is required to obtain the routine entry point contained in the first word of the routine descriptor for indirect routine calls. The descriptor is documented in the Intel® Itanium® Software Conventions and Runtime Architecture Guide, section 8.4.2. You can find this design guide at web site http://www.intel.com.
These functions can be used to gather more information, such as profiling information or timing information. Note that it is the user's responsibility to provide these profiling functions.
If you specify -finstrument-functions (Linux and Mac OS X) or /Qinstrument-functions (Windows), routine inlining is disabled. If you specify -fno-instrument-functions or /Qinstrument-functions-, inlining is not disabled.
This option is provided for compatibility with gcc.
None