Journal malloc
Malloc Log est une extension facultative du sous-système malloc , qui permet à l'utilisateur d'obtenir des informations sur les allocations actives actuellement détenues par le processus appelant. Ces données peuvent ensuite être utilisées pour l'identification des incidents et l'analyse des performances.
Données enregistrées dans le journal malloc
- Adresse renvoyée à l'appelant.
- Taille de l'allocation.
- Segment de mémoire à partir duquel l'allocation a été traitée.
- Trace de pile de la fonction appelante. La profondeur de la trace enregistrée est une option configurable.
- ID du processus appelant.
- ID de l'unité d'exécution appelante.
- Numéro de séquence de l'allocation par rapport au démarrage du processus.
- Temps réel au cours duquel la répartition a été effectuée.
Lorsque le journal malloc est activé, chaque allocation réussie nécessite une quantité supplémentaire de temps système utilisé pour stocker les métadonnées. Cette surcharge est d'environ 50 à 100 octets pour une application 32 bits ; deux fois plus que pour une application 64 bits. La quantité de frais généraux varie en fonction des options définies.
- Utilisation de la sous-commande DBX malloc.
- Utilisation de l'option de débogage malloc
report_allocations.
Activation du journal malloc
MALLOCDEBUG=logMALLOCDEBUG=log:extended,stack_depth:6- étendues
- La valeur par défaut est off. La spécification de cette option active la consignation des métadonnées d'allocation facultatives spécifiées ci-dessus. Ce paramètre affecte la quantité de surcharge requise pour chaque allocation. Cette option n'a aucun effet si
MALLOCTYPEest défini surwatson2. - profondeur de pile
- Permet d'indiquer la profondeur de la pile d'appels de fonction enregistrée pour chaque allocation. Ce paramètre affecte la quantité de temps système requise pour chaque allocation. La valeur par défaut est 4 et la valeur maximale est 64.
Restrictions
Les performances de tous les programmes peuvent se dégrader lorsque le journal Malloc est activé, en raison du coût de stockage des données en mémoire. L'utilisation de la mémoire va également augmenter.