関数のエントリーポイントと終了ポイントをインストルメントするかどうかを指定します。
IA-32、インテル® 64、IA-64 アーキテクチャー
Linux および Mac OS X: |
-finstrument-functions -fno-instrument-functions |
Windows: |
/Qinstrument-functions /Qinstrument-functions- |
なし
-fno-instrument-functions |
関数のエントリーポイントと終了ポイントをインストルメントしません。 |
このオプションは、関数のエントリーポイントと終了ポイントをインストルメントするかどうかを指定します。このオプションを指定すると、実行時間が長くなることがあります。
次のプロファイリング関数は、現在の関数のアドレスと関数が呼び出されたアドレス ("呼び出しサイト") で呼び出されます。
この関数は、関数のエントリー時に呼び出されます。
IA-32 アーキテクチャーとインテル® 64 アーキテクチャー:
void __cyg_profile_func_enter (void *this_fn,
void *call_site);
IA-64 アーキテクチャー:
void __cyg_profile_func_enter (void **this_fn,
void *call_site);
この関数は、関数の終了時に呼び出されます。
IA-32 アーキテクチャーとインテル® 64 アーキテクチャー:
void __cyg_profile_func_exit (void *this_fn,
void *call_site);
IA-64 アーキテクチャー:
void __cyg_profile_func_exit (void **this_fn,
void *call_site);
IA-64 アーキテクチャーでは、追加の関数ポインター引数の逆参照は、間接関数呼び出しにおける関数記述子の最初のワードに格納されている関数のエントリーポイントを取得する必要があります。記述子に関する説明は、『Intel® Itanium® Software Conventions and Runtime Architecture Guide』(英語) のセクション 8.4.2 を参照してください。このガイドを入手するには、http://www.intel.com にアクセスしてください。
これらの関数は、プロファイル情報や時間測定情報など、詳細な情報の収集に使用します。これらのプロファイリング関数は、自分で用意する必要があります。
-finstrument-functions (Linux および Mac OS X) または /Qinstrument-functions (Windows) を指定すると、関数のインライン展開は無効になります。-fno-instrument-functions または /Qinstrument-functions- を指定すると、インライン展開は無効になりません。
Linux および Mac OS X システムでは、次の属性を使用してインストルメントを行わない関数を個別に指定できます。
__attribute__((__no_instrument_function__))
この場合、関数のインライン展開は無効になりません。
このオプションは、gcc との互換性のために提供されています。
なし