我想写一个可以解析的程序
/proc/<pid>/maps
的输出以便进行分类
他们分为不同的类别:
Image
:该页面是二进制文件的映射或其中一个必需的库Mapped file
:页面会映射特定文件,例如字体Stack
Heap
Private data
Shareable
正如您可能已经猜到的,主要想法是开发相当于sysinternals的vmmap工具 对于Linux。
我使用pathname
字段来确定页面可以与哪个类别相关联。
如果pathname
与/proc/<pid>/exe
符号链接的路径相同,或者是
它是一个依赖项,因此它转到Image
。
如果pathname
是一个文件且不是图片的一部分,那么它就是Mapped File
。
如果pathname
与[stack:<tid>]
或[heap]
等模式匹配,
然后该页面分别是Stack
或Heap
。
当我在寻找有关/proc/<pid>/maps
的一些信息时,我来到了这里
这个stackoverflow post missing-heap-section-in-proc-pid-maps,我发现如果你用size参数调用malloc
在某个阈值之上,创建了一个私有匿名映射
增加堆的大小。
[heap]
吗?如果没有,如何对它们进行分类?Private Data
和Shareable
类别?谢谢!