Ubuntu 14.04 で SystemTap 2.9 を使う

Ubuntu 14.04 で DTRACE に近い機能を実現する SystemTap を使うための方法。

いくつか参考になる情報があるけど、どうもうまくいかない。

Ubuntu 14.04 (trusty) のリポジトリの SystemTap のバージョンは 2.3 で、これが古くてアップデートされたカーネル(自分の場合は 3.16.0-50)に対応していないのではないかと予想。SystemTap 公式を参考にして最新版をインストールしたところ、使えるようになった。

  1. 必要なパッケージのインストール
    $ sudo apt-get install gcc g++ elfutils libdw-dev
  2. カーネルの dbgsym のインストール
    • ddebs リポジトリの追加
      $ codename=$(lsb_release -c | awk '{print $2}')
      $ sudo tee /etc/apt/sources.list.d/ddebs.list << EOF
      deb http://ddebs.ubuntu.com/ ${codename} main restricted universe multiverse
      deb http://ddebs.ubuntu.com/ ${codename}-security main restricted universe multiverse
      deb http://ddebs.ubuntu.com/ ${codename}-updates main restricted universe multiverse
      deb http://ddebs.ubuntu.com/ ${codename}-proposed main restricted universe multiverse
      EOF
      $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys ECDCAD72428D7C01
      $ sudo apt-get update
    • カーネルの dbgsym パッケージのインストール
      $ sudo apt-get install linux-image-$(uname -r)-dbgsym
  3. SystemTap の入手・インストール
    • 公式の情報
    • リリース版置き場
    • SystemTap の入手
      $ wget https://sourceware.org/systemtap/ftp/releases/systemtap-2.9.tar.gz
    • SystemTap のコンパイル
      $ tar xvfz systemtap-2.9.tar.gz
      $ cd systemtap-2.9
      $ ./configure
      $ make
    • SystemTap のインストール
      $ sudo make install
  4. SystemTap の動作確認
    以下のようになれば OK

    $ sudo stap -e 'probe begin { println("Hello, World!") exit() }'
    Hello, World!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です