43.5.2. 単一実行可能ファイルでの opreport の使用
特定の実行可能ファイルに関する詳細なプロファイル情報を取得するには、opreport を使用します。
opreport <mode> <executable>
分析するには、実行可能ファイルへの完全パスである <executable> 必要があります。<mode> は以下のいずれかである必要があります。
-l
- シンボルでサンプルデータを一覧表示します。たとえば、以下は、コマンド opreport -l /lib/tls/libc- <version > .so の実行からの出力の一部になります。
samples % symbol name 12 21.4286 __gconv_transform_utf8_internal 5 8.9286 _int_malloc 4 7.1429 malloc 3 5.3571 __i686.get_pc_thunk.bx 3 5.3571 _dl_mcount_wrapper_check 3 5.3571 mbrtowc 3 5.3571 memcpy 2 3.5714 _int_realloc 2 3.5714 _nl_intern_locale_data 2 3.5714 free 2 3.5714 strcmp 1 1.7857 __ctype_get_mb_cur_max 1 1.7857 __unregister_atfork 1 1.7857 __write_nocancel 1 1.7857 _dl_addr 1 1.7857 _int_free 1 1.7857 _itoa_word 1 1.7857 calc_eclosure_iter 1 1.7857 fopen@@GLIBC_2.1 1 1.7857 getpid 1 1.7857 memmove 1 1.7857 msort_with_tmp 1 1.7857 strcpy 1 1.7857 strlen 1 1.7857 vfprintf 1 1.7857 write
最初の列はシンボルのサンプル数で、2 番目のコラムは、実行ファイルのサンプル全体に対するこのシンボルのサンプルの割合であり、3 番目のコラムはシンボル名です。サンプルの最大数から最小(逆引き順序)に出力を並べ替えるには、-l
オプションとともに-r
を使用します。 -i <symbol-name>
- シンボル名に固有のサンプルデータを一覧表示します。たとえば、以下の出力は、opreport -l -i __gconv_transform_utf8_internal /lib/tls/libc- <version> .so コマンドからの ものです。
samples % symbol name 12 100.000 __gconv_transform_utf8_internal
最初の行は、シンボル/実行可能な組み合わせの概要です。最初の列は、メモリーシンボルのサンプル数です。2 番目のコラムは、シンボルのサンプルの合計数に対するメモリーアドレスのサンプルの割合です。3 列目はシンボル名です。 -d
-l
よりも詳細でシンボルでサンプルデータを一覧表示します。たとえば、以下の出力は、コマンド opreport -l -d __gconv_transform_utf8_internal /lib/tls/libc- <version> .so からの ものです。vma samples % symbol name 00a98640 12 100.000 __gconv_transform_utf8_internal 00a98640 1 8.3333 00a9868c 2 16.6667 00a9869a 1 8.3333 00a986c1 1 8.3333 00a98720 1 8.3333 00a98749 1 8.3333 00a98753 1 8.3333 00a98789 1 8.3333 00a98864 1 8.3333 00a98869 1 8.3333 00a98b08 1 8.3333
データは-l
オプションと同じですが、シンボルごとに、使用される各仮想メモリーアドレスが表示されます。仮想メモリーアドレスごとに、シンボルのサンプル数に対するサンプル数およびパーセンテージが表示されます。-x
<symbol-name>- 出力からシンボルのコンマ区切りリストを除外します。
session
:<name>/var/lib/oprofile/samples/
ディレクトリーに対するセッションまたはディレクトリーへの完全パスを指定します。