web-dev-qa-db-ja.com

Systemtapプロービングの使用Linuxでのすべての読み取り/書き込み操作のバイトの仮想アドレス位置の取得

Systemtapプロービングツールを使用して、syscall.read関数とsyscall.read.return関数をプロービングすることにより、ファイルによって読み取られた合計バイト数を取得する方法を取得しました。 syscall.read.returnには、読み取られたバイトの合計量を示すreturnval()があります。読み取りおよび書き込み操作ごとに、バイトの仮想アドレスを取得する必要があります。 LinuxでSystemtapプロービングツールを使用してこれを実現するにはどうすればよいですか。

2
Ashikee AbHi

次のSystemTapスクリプトを使用すると、読み取ったバイトを文字列として取得できます。

probe syscall.read.return
{
  printf("writen_bytes_as_a_string=%s\n", user_string_n(@entry($buf),$return))
}
1
Jaime Hablutzel