Determines whether routine entry and exit points are instrumented.
None
IA-32 architecture, IntelŪ 64 architecture, IA-64 architecture
Linux and Mac OS X: | -finstrument-functions -fno-instrument-functions |
Windows: | /Qinstrument-functions
/Qinstrument-functions- |
None
-fno-instrument-functions or /Qinstrument-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"):
void __cyg_profile_func_enter (void *this_fn,
void
*call_site);
void __cyg_profile_func_enter (void **this_fn,
void
*call_site);
void __cyg_profile_func_exit (void *this_fn,
void
*call_site);
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 by entering the title in the Search box.
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