1

以前はgcc -fdump-rtl-expandを使用-finstrument-functionsして関数呼び出しのトレースを行っていましたが、armccにはこの種の同様の機能がありますか?

gccの場合、次を使用します。

CFLAGS += -finstrument-functions -fdump-rtl-expand

armccには同様のコンパイラ オプションがありますか? 私は同じものを試しましたが、うまくいかないようです:

$ armcc -finstrument-functions test.c
Fatal error: C3900U: Unrecognized option '-finstrument-functions'.
$ armcc -fdump-rtl-expand test.c
Fatal error: C3900U: Unrecognized option '-fdump-rtl-expand'.
4

1 に答える 1

1

gccスタイルのインストルメンテーションを許可するオプションarmccが異なるようです。

以下はARM コンパイラ ツールチェーンからの抜粋です: コンパイラ リファレンス ( Web サイトで「登録」すると、 http://infocenter.arm.comでリファレンスにアクセスできます):

--gnu_instrument, --no_gnu_instrument

このオプションは、プロファイリングの開始と終了のために GCC スタイルのインストルメンテーション呼び出しを関数に挿入します。

使用法

関数の入り口の後、関数の出口の前に、現在の関数のアドレスとその呼び出しサイトを使用して、次のプロファイリング関数が呼び出されます。

void __cyg_profile_func_enter(void *current_func, void *callsite);

void __cyg_profile_func_exit(void *current_func, void *callsite);

制限

__cyg_profile_func_enter() および __cyg_profile_func_exit() の定義を提供する必要があります。

__cyg_profile_func_enter()__cyg_profile_func_exit()で明示的にマークする必要があり__attribute__((no_instrument_function))ます。

こちらもご覧ください

__attribute__((no_instrument_function))関数属性。

オプションについて:内部で RTL を使用するか-fdump-rtl-expandどうかはわかりません (考えもしない) 。したがって、 expandパスarmccからログを取得しても、ここでは意味がないと思います。

于 2012-09-24T09:49:58.133 に答える