Systemtapプロービングツールを使用して、syscall.read関数とsyscall.read.return関数をプロービングすることにより、ファイルによって読み取られた合計バイト数を取得する方法を取得しました。 syscall.read.returnには、読み取られたバイトの合計量を示すreturnval()があります。読み取りおよび書き込み操作ごとに、バイトの仮想アドレスを取得する必要があります。 LinuxでSystemtapプロービングツールを使用してこれを実現するにはどうすればよいですか。
次のSystemTapスクリプトを使用すると、読み取ったバイトを文字列として取得できます。
probe syscall.read.return
{
printf("writen_bytes_as_a_string=%s\n", user_string_n(@entry($buf),$return))
}