ユーザプログラムの関数トレーサを作りなおした

サマリ

ここやらここここで解説されている ユーザプログラムの関数トレーサftraceを手直しして、少し機能追加しました。 もとのftraceだと名前がまぎらわしいのと、2011年で開発が止まっているっぽかったので、 uftrace(Userspaceのu)と名前を変えて公開しました。 github.com

ちなみに、ftraceの開発者hamanoさんのレポジトリはこれ。 github.com

ビルド方法

テンプレ的な方法でいけます。autotoolsはまだ勉強途上でよくわからない・・・

$ git clone https://github.com/bisco/uftrace.git
$ cd uftrace
$ ./configure
$ make
$ sudo make install

使い方

gccのオプション-g -finstrument-functionsをつけてビルドしなおしたあと、 こんな感じで使えます。

$ uftrace <your_program> <your_program_args>

追加した機能たち

細々追加しましたが、いちばんの目玉はフィルタ機能。 大きなプログラムだといろいろ出すぎて困るので作りました。

  • ファイル名と行数を表示(ftrace-0.90から手直しして復活)
  • 関数から出た時に情報を出力(ftrace-0.90から手直しして復活)
  • フィルター機能:正規表現でパターンを指定。マッチしたパターンを出力"しない"。