37.2. SystemTap のインストール
SystemTap の使用を開始するには、必要なパッケージをインストールします。システムに複数のカーネルがインストールされている複数のカーネルで SystemTap を使用するには、カーネルバージョン ごと に必要な対応カーネルパッケージをインストールします。
前提条件
- デバッグリポジトリーおよびソースリポジトリーの有効化 で説明されているように、デバッグリポジトリーを有効にしている。
手順
必要な SystemTap パッケージをインストールします。
# yum install systemtap
必要なカーネルパッケージをインストールします。
stap-prep
の使用:# stap-prep
stap-prep
が機能しない場合は、必要なカーネルパッケージを手動でインストールします。# yum install kernel-debuginfo-$(uname -r) kernel-debuginfo-common-$(uname -i)-$(uname -r) kernel-devel-$(uname -r)
$(uname -i)
は、システムのハードウェアプラットフォームに自動的に置き換えられ、$(uname -r)
は、実行中のカーネルのバージョンに自動的に置き換えられます。
検証
SystemTap でプローブするカーネルが現在使用中である場合 n には、インストールが成功したかどうかを確認します。
# stap -v -e 'probe kernel.function("vfs_read") {printf("read performed\n"); exit()}'
SystemTap デプロイメントに成功すると、以下のような出力が表示されます。
Pass 1: parsed user script and 45 library script(s) in 340usr/0sys/358real ms. Pass 2: analyzed script: 1 probe(s), 1 function(s), 0 embed(s), 0 global(s) in 290usr/260sys/568real ms. Pass 3: translated to C into "/tmp/stapiArgLX/stap_e5886fa50499994e6a87aacdc43cd392_399.c" in 490usr/430sys/938real ms. Pass 4: compiled C into "stap_e5886fa50499994e6a87aacdc43cd392_399.ko" in 3310usr/430sys/3714real ms. Pass 5: starting run. 1 read performed 2 Pass 5: run completed in 10usr/40sys/73real ms. 3
出力の最後の 3 行 (
Pass 5
で開始) は、以下のようになります。