30

次の方法で「perf」を実行しています。

perf record -a --call-graph -p some_pid

perf report --call-graph --stdio

次に、私はこれを見ます:

 1.60%     my_binary  my_binary                [.] my_func
           |
           --- my_func
              |          
              |--71.10%-- (nil)
              |          (nil)
              |          
               --28.90%-- 0x17f310000000a

my_func() を呼び出す関数がわかりません。代わりに「nil」と「0x17f310000000a」が表示されます。私は何か間違ったことをしていますか?表示されるシンボルと表示されないシンボルがあるため、おそらくデバッグ情報の問題ではありません。

より詳しい情報:

  • CentOS 6.2 (カーネル 2.6.32-220.4.1) を実行しています。
  • perf rpm - perf-2.6.32-279.5.2.el6.x86_64。
4

2 に答える 2

31

-fno-omit-frame-pointer gccオプションを使用してコードをコンパイルしたことを確認してください。

于 2012-11-15T12:59:43.467 に答える
17

オプションがありませ-Gん (システムにインストールされているものよりも新しい perf が必要になる場合があります)。

$ perf report --call-graph --stdio -G

からperf help report:

   -G, --inverted
       alias for inverted caller based call graph.
于 2012-12-13T16:59:54.323 に答える