私はこれに歯を食いしばっています...
ARM ボードでプロファイリングを行い、コール グラフを表示する必要があります。OProfile、Kernel perf、Google パフォーマンス ツールを試してみました。すべて正常に動作しますが、コールグラフ情報は出力されません。
これにより、コードを正しくコンパイルしていないという結論に達しました。
C++ コードをコンパイルするときは、次のフラグを使用します。
アーチ固有:
-march=armv7-a -mtune=cortex-a8 -mfloat-abi=hard -mfpu=vfpv3
全般的:
-fexceptions -fno-strict-aliasing -D_REENTRANT -Wall -Wextra
デバッグ (最適化あり):
-O2 -g -fno-omit-frame-pointer
私は多くの Google 検索を行い、いくつかの関連トピックを見つけました。
- libunwind ?
- 小人
- (非同期) アンワインド テーブル
-mapcs-frame
しかし、これらがどのように接続されているかは完全にはわかりません。コール グラフを機能させる方法に関するヒントはありますか?
注(Rianの回答による):ARMでx86-64よりも一部のメソッドが(他のメソッドに比べて)時間がかかるかどうか、およびその理由を調べることに興味があります。別のプラットフォームでこれを行うことは役に立ちません (私のコードは両方でコンパイルされ、x86-64 でコールグラフを実行できますが)。