Intel® C++ Compiler Classic Developer Guide and Reference

ID 767249
Date 12/16/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

finstrument-functions, Qinstrument-functions

Determines whether function entry and exit points are instrumented.

Syntax

Linux:

-finstrument-functions

-fno-instrument-functions

macOS:

-finstrument-functions

-fno-instrument-functions

Windows:

/Qinstrument-functions

/Qinstrument-functions-

Arguments

None

Default

-fno-instrument-functions
or /Qinstrument-functions-

Function entry and exit points are not instrumented.

Description

This option determines whether function entry and exit points are instrumented. It may increase execution time.

The following profiling functions are called with the address of the current function and the address of where the function was called (its "call site"):

  • This function is called upon function entry:

    • void __cyg_profile_func_enter (void *this_fn,
      void *call_site);
  • This function is called upon function exit:

    • void __cyg_profile_func_exit (void *this_fn,
      void *call_site);

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 macOS) or /Qinstrument-functions (Windows*), function inlining is disabled. If you specify -fno-instrument-functions or /Qinstrument-functions-, inlining is not disabled.

On Linux and macOS systems, you can use the following attribute to stop an individual function from being instrumented:

__attribute__((__no_instrument_function__))

It also stops inlining from being disabled for that individual function.

This option is provided for compatibility with gcc.

IDE Equivalent
None
Alternate Options

None