web-dev-qa-db-ja.com

syscallイベントトレース出力のフォーマットをftraceに変更

Sys_enter_openat syscallのftraceイベントトレースを有効にしました。 events/syscalls/sys_enter_openat/formatで指定されたそれぞれの出力フォーマットは

_print fmt: "dfd: 0x%08lx, filename: 0x%08lx, flags: 0x%08lx, mode: 0x%08lx", ((unsigned long)(REC->dfd)), ((unsigned long)(REC->filename)), ((unsigned long)(REC->flags)), ((unsigned long)(REC->mode))
_

予想通り、ftraceへのサンプル出力行は次のようになります。

_msm_irqbalance-1338  [000] ...1 211710.033931: sys_openat(dfd: ffffff9c, filename: 5af693f224, flags: 2, mode: 0)
_

_filename: 5af693f224_をhex(5af693f224)ではなく_filename: <string>_として表示できるように出力形式を変更する方法はありますか?

したがって、基本的には、特定のイベント(上記のsys_enter_openatなど)をftraceにトレースしながら出力形式を変更する方法があります。

これはsystemtapまたはkrpobeを使用して可能だったと思いますが、私のセットアップでは現在のところ使用できません。

5
Madhur Rawat

残念ながら、現在これを行う方法はありません。しかし、もし私がそのようなことをするためのまともなインターフェースと実装を理解できれば、おそらく将来的にそれを追加するかもしれません。多分私は出力を異なって表示させるトリガーを追加します。

StackExchangeは初めてかもしれませんが、ftrace(本名はSteven Rostedt-gitの履歴を調べます)の作成者です。 「本当の答え」は、コードを書くときに起こります。

14
nevets