Systemtap プローブを使用して、Linux で各読み取りおよび書き込み操作のバイト仮想アドレス位置を取得します。

Systemtap プローブを使用して、Linux で各読み取りおよび書き込み操作のバイト仮想アドレス位置を取得します。

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

ベストアンサー1

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

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

おすすめ記事