3

不要な関数呼び出しを排除するのに役立つので、プロファイリングのためのフレーム グラフのアイデアが本当に気に入っています。ただし、サンプルを収集するたびにプロファイラーが完全なスタック ダンプを実行する必要があるという問題があります。これは DTrace または SystemTap で非常に簡単に実現できますが、ubuntu を実行している ARM デバイスでこれを実行できる必要があります (これにより DTrace が排除されます)。また、カーネルを再コンパイルせずにこれを実行したいと考えています (SystemTap を排除します)。

Valgrind/Callgrind または OProfile (または Ubuntu の ARM デバイスで実行できるその他のプロファイリング ツール) を取得して、次のようなものを出力することは可能ですか?
dtrace -n 'profile-1001 /pid == 12345 && arg1/ { @[ustack()] = count(); }

4

2 に答える 2

1

pstackは、ARMパッチを適用してARMデバイスで実行した後、残念ながらsegfaultsするMikeDunlaveyによって提案されました。それを見る時間ができるまで、私は次の一時的な解決策を見つけました:

http://www.commandlinefu.com/commands/view/4039/print-stack-trace-of-a-core-file-without-needing-to-enter-gdb-interactively

次のコマンドでgdbを使用します。gdb --q --n --ex bt --batch --pid PID

少し遅いですが、動作します。

于 2012-05-02T06:59:35.293 に答える