![按特定地址给出 /proc/id/maps 行的实用程序](https://linux22.com/image/64796/%E6%8C%89%E7%89%B9%E5%AE%9A%E5%9C%B0%E5%9D%80%E7%BB%99%E5%87%BA%20%2Fproc%2Fid%2Fmaps%20%E8%A1%8C%E7%9A%84%E5%AE%9E%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
是否有一个实用程序可以从/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
和具有相同的长度)。