2010-05-15 3 views
3

Comment puis-je rechercher l'état de la mémoire d'un processus sous Linux? Spécifiquement, je souhaite identifier certaines régions d'intérêt, et y jeter un coup d'œil à intervalles réguliers, éventuellement en cherchant de nouvelles valeurs.Recherche dans la mémoire d'un processus sous Linux

Je soupçonne qu'une réponse peut impliquer des appels à ptrace(), et la lecture /proc/[pid]/mem, mais a besoin de plus de continuer.

Répondre

1

J'ai développé du code pour la fonctionnalité demandée.

Le module memutil fournit itération de la région de mémoire de processus, et la lecture de la mémoire python ou C avec l'aide du module ptrace et readmem exécutable.

S'il y a des questions, ou des demandes d'outils autonomes, il suffit de demander.

2

Je crois que vous pouvez obtenir ce que vous voulez par l'analyse syntaxique /proc/[pid]/maps - Je l'ai utilisé que pour diagnostiquer des pointeurs invalides

+0

Je voudrais un peu plus d'informations, et une démo: P –

+0

Je suis désolé ce code était sous NDA :( –

+0

Je viens de parcourir le 'aspacemgr-linux.c 'de Valgrind qui se lit'/proc/self/maps' - pas facile à suivre mais peut-être vous pouvez prendre des informations à partir de là –

0

Peut-être en utilisant GDB serait une option? Vous devriez être capable de faire des choses comme lire périodiquement de la mémoire en utilisant des points d'arrêt.

Questions connexes