是否可以从Linux转储和调查共享内存内容?我在“ipcs -m”输出中发现了一些奇怪的共享内存段,并希望看到其中的内容。 也可以确定该段的创建者。 “nattch”似乎总是为零。
答案 0 :(得分:2)
看看这个工具
这是一个很好的工具。
你对创作者的意思是什么?你的意思是过程的PID吗?在最后一种情况下,您可以使用
ipcs -mp
你会得到这个输出:
------ Shared Memory Creator/Last-op --------
shmid owner cpid lpid
3211265 root 1857 1866
,其中
CPID
The process ID of the job that created the shared memory segment.
和
LPID
The process ID of the last job to attach or detach from the shared memory segment or change the semaphore value.
修改强>
我认为不可能使用标准工具记录这些信息。
我认为我们可以这样做。
假设我们执行命令:
ipcs -m
并获得这些结果
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 3211265 root 644 80 2
然后,使用命令grep 3211265 / proc / * / maps,我们获得:
/proc/1862/maps:bla bla bla rw-s 00000000 00:09 3211265 /SYSV00000000 (deleted)
/proc/1863/maps:bla bla bla rw-s 00000000 00:09 3211265 /SYSV00000000 (deleted)
通过这种方式,我们可以获得附加到细分市场的流程。
扫描/ proc / * / maps中的元素,您可以发现当前附加到给定段的PID。
您可以使用记录这些特定信息的bash脚本。