特定のアドレスに/proc/id/maps行を提供するユーティリティ

特定のアドレスに/proc/id/maps行を提供するユーティリティ

/proc/id/mapsプロセスが特定のアドレスを提供したときに特定の行を提供できるユーティリティはありますか?

たとえば、指定された場合は0x7fb4a84f6008次のように返します。

7fb4a84f6000-7fb4a84fd000 r-xp 00000000 00:48 20132    /lib64/libnss_compat-2.21.so

答え1

たぶんpmapあなたがしたいことをすることができます:

$ sudo pmap -Ab75bf022 26746
26746:   dhclient -1 -v -pf /run/dhclient.eth5.pid -lf /var/lib/dhcp/dhclient.eth5.leases eth5
b75bf000      4K rw--- ld-2.19.so
 total        4K

または、アドレス範囲とフルパスを使用します。

$ sudo pmap -p -Ab75bf022,b77bf022 26746
26746:   dhclient -1 -v -pf /run/dhclient.eth5.pid -lf /var/lib/dhcp/dhclient.eth5.leases eth5
b75bf000      4K rw--- /lib/i386-linux-gnu/ld-2.19.so
b75c0000   1732K r-x-- /sbin/dhclient
b7771000      4K r---- /sbin/dhclient
b7772000     12K rw--- /sbin/dhclient
b7775000     44K rw---   [ anon ]
 total     1796K

答え2

以下を使用できますawk

awk -F'[ -]' -v s=7fb4a84f6008 '$1<=s&&s<$2' /proc/id/maps

s=検索されたアドレス(以降)を、表示されたものと同じ形式maps(なし0xと同じ長さ)で提供できるとします。

関連情報