2017-10-19 5 views
1

Je voudrais ajouter un profileur de mémoire à mon démon qui fonctionne sous macOS. En linux, je pourrais simplement vérifier le /proc/<pid>/map pour toute mémoire mappée dans le processus, et recherchez pathname = [haep] ou pathname = [pile].Identifier les segments de pile et de tas dans le processus en cours de macOS

Existe-t-il un autre message mac syscall/MIG/mach à cette fin?

J'ai essayé de voir si proc_pidinfo contiennent des informations précieuses, mais malheureusement rien à voir avec mes besoins. Notez que Apple fournit un tel outil pour d'autres processus distants appelé vmmap et qu'il ne fournit aucune API (c'est simplement un outil de ligne de commande) et qu'il n'y a pas d'API publique pour cette demande, mais il y a peut-être une API pour extraire cette information de "dans" le processus lui-même.

Répondre

0

Je ne sais pas quelles API publiques (le cas échéant) il utilise, mais l'équivalent le plus proche de /proc/$pid/maps de Linux dans macOS est l'utilitaire vmmap. L'exécuter avec un PID en tant qu'argument vous donnera un rapport détaillé sur toutes les régions mappées par le processus, y compris des détails intéressants sur l'utilisation de la mémoire dans les zones malloc.

+0

Oui c'est le cas, mais je voudrais baser un profileur de mémoire en cours de processus donc j'ai besoin d'API, connaissez-vous un privé? merci – Zohar81

+0

Cette [question] (https://stackoverflow.com/questions/33337740/is-there-any-api-for-the-command-vmmap) peut aider. – CRD