システムコールイベントトレース出力形式をftraceに変更

システムコールイベントトレース出力形式をftraceに変更

sys_enter_openat システムコールに対して 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表示されるように出力形式を変更する方法はありますか?filename: <string>hex(5af693f224)

したがって、デフォルトでは、特定のイベント(上記のsys_enter_openatなど)をftraceとして追跡するときに出力形式を変更する方法があります。

私はsystemtapまたはkrpobeを使ってこれを行うことができると思いますが、現在私の設定ではこれを許可していません。

ベストアンサー1

残念ながら、現時点ではこれを行う方法はありません。ただし、後でこのようなタスクを実行できる合理的なインターフェイスと実装を見つけることができる場合は、追加することもできます。出力が異なるようにトリガーを追加することもできます。

私はStackExchangeに初めて触れたかもしれませんが、ftrace(本名Steven Rostedt - git History検索)の著者です。コードを書くと「本当の答え」が現れる!

おすすめ記事