Red Hat Training
A Red Hat training course is available for RHEL 8
24.2. perf を使用した関数内の行でのアップローブの作成
その後、このトレースポイントを perf stat
や perf record
などの他の perf
ツールと併用すると、プロセスやアプリケーションの動作をよりよく理解できるようになります。
前提条件
-
perf のインストール で説明されているように、
perf
ユーザー領域ツールがインストールされている。 実行ファイルのデバッグシンボルを取得している。
# objdump -t ./your_executable | head
注記これを行うには、実行ファイルの
debuginfo
パッケージをインストールする必要があります。または、実行ファイルがローカルで開発したアプリケーションの場合は、デバッグ情報 (GCC の-g
オプション) を使用してアプリケーションをコンパイルする必要があります。
手順
プローブを配置できる関数行を表示します。
$ perf probe -x ./your_executable -L main
このコマンドの出力は、以下のようになります。
<main@/home/user/my_executable:0> 0 int main(int argc, const char **argv) 1 { int err; const char *cmd; char sbuf[STRERR_BUFSIZE]; /* libsubcmd init */ 7 exec_cmd_init("perf", PREFIX, PERF_EXEC_PATH, EXEC_PATH_ENVIRONMENT); 8 pager_init(PERF_PAGER_ENVIRONMENT);
目的の関数行の uprobe を作成します。
# perf probe -x ./my_executable main:8 Added new event: probe_my_executable:main_L8 (on main:8 in /home/user/my_executable) You can now use it in all perf tools, such as: perf record -e probe_my_executable:main_L8 -aR sleep 1