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

Malloc Log enregistre les données suivantes pour chaque allocation active:
  • 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.
En outre, les informations suivantes peuvent éventuellement être consignées:
  • 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.

Les informations du journal Malloc sont accessibles de l'une des manières suivantes:
  • Utilisation de la sous-commande DBX malloc.
  • Utilisation de l'option de débogage malloc report_allocations .

Activation du journal malloc

Le journal Malloc n'est pas activé par défaut. Pour activer Malloc Log avec les paramètres par défaut, définissez la variable d'environnement MALLOCDEBUG comme suit:
MALLOCDEBUG=log
Pour activer le journal Malloc avec les options de configuration spécifiées par l'utilisateur, définissez la variable d'environnement MALLOCDEBUG comme suit:
MALLOCDEBUG=log:extended,stack_depth:6
Remarque: Les valeurs par défaut du journal Malloc sont les suivantes:
é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 MALLOCTYPE est défini sur watson2.
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.