Me gustaría escribir un programa que pudiera analizar la salida de /proc/<pid>/maps para clasificarlos en diferentes categorías:
Image : la página es un mapeo del binario o una de sus bibliotecas requeridasMapped file : la página asigna un archivo específico como una fuente, por ejemploStackHeapPrivate dataShareableComo habrás adivinado, la idea principal es desarrollar un equivalente de la herramienta vmmap de sysinternals para Linux.
Estoy usando el campo de nombre de pathname para determinar en qué categoría se podría asociar una página.
Si pathname es la misma ruta que /proc/<pid>/exe symlink, o si es una dependencia, entonces va a Image .
Si el nombre de pathname es un archivo y no forma parte de la imagen, entonces es un Mapped File .
Si el nombre de la pathname coincide con un patrón como [stack:<tid>] o [heap] , entonces la página es respectivamente Stack o Heap .
Mientras buscaba información sobre /proc/<pid>/maps , encontré esta publicación de stackoverflow que faltaba en la sección del montón en proc-pid-maps , donde descubrí que si estaba llamando a malloc con el parámetro de tamaño por encima de cierto umbral, se creaba una asignación anónima privada en lugar de aumentar el tamaño del Heap.
[heap] ? Si no, ¿cómo clasificarlos?Private Data y Shareable ?Gracias !