Utraceを使ってシステムコール割り込みを書きたいです。Utrace プロジェクトが放棄されたことは理解しましたが、そのコードの一部は kprobe と uprobe で使用されています。
これらがどのように機能するのか、私はよく理解していません。特に uprobe それらの間に存在する違いを説明できますか? また、モジュールを作成せずに uprobe を使用して、システム コールの実際のパラメーターを確認することはできますか?
ありがとう
Utraceを使ってシステムコール割り込みを書きたいです。Utrace プロジェクトが放棄されたことは理解しましたが、そのコードの一部は kprobe と uprobe で使用されています。
これらがどのように機能するのか、私はよく理解していません。特に uprobe それらの間に存在する違いを説明できますか? また、モジュールを作成せずに uprobe を使用して、システム コールの実際のパラメーターを確認することはできますか?
ありがとう
Kprobe は、カーネル コードでプローブポイントを作成および管理します。つまり、do_sys_open() などのカーネル関数をプローブする必要があります。kprobe を使用するには、 Documentation/trace/kprobetrace.txtを参照する必要があります。
Uprobe は、ユーザー アプリケーションでプローブポイントを作成および管理します。つまり、何らかのユーザー空間関数をプローブする必要がありますが、プローブは、プローブされたプロセスに代わってカーネル空間で実行されます。uprobeの基本的な使用法を取得し、その目的を確認するには、Documentation/trace/uprobetracer.txtを参照する必要があります。