2009-12-01 5 views
1

J'utilise FastMM avec les informations de débogage JCL pour détecter les fuites de mémoire dans mon application. Cependant, j'ai des plugins qui sont compilés en Delphi, les dll et les applications principales utilisent des paquets d'exécution communs. Maintenant, quand je ferme l'application, il génère des rapports de fuites de mémoire dans le fichier texte qui est bien, mais il contient des traces de pile seulement pour l'application principale. Si une fuite de mémoire se produit dans la DLL du plugin, la trace de la pile conduit à LoadPlugins; procédure dans l'application principale! Bien sûr, mes plugins contiennent des données de débogage JCL (il est inséré dans le fichier binaire .dll).FastMM, mémoire de traces de pile pour les fuites dans les DLL chargées dynamiquement, compilé avec les packages d'exécution

Où est le problème? Est-ce dû à l'utilisation des paquets d'exécution? Ou un commutateur (définir) que j'ai oublié d'activer/désactiver? Merci d'avance

Répondre

0

Pierre, auteur de FastMM a répondu à ma question. Si quelqu'un est intéressé, la solution est de ne pas décharger les plugins à l'arrêt afin de garder trace de la pile & les types d'objets accessibles. Cela a cependant causé des tonnes de bugs à l'arrêt (puisque FastMM a été déchargé deux fois), donc j'ai finalement dû déplacer FastMM vers un paquet partagé ...

+0

C'est toujours une bonne idée d'utiliser l'option borlandmm.dll lorsque vous utilisez FastMM avec des paquets. –

2

Avez-vous défini les options FullDebugMode et les options de partage du Gestionnaire de mémoire (ShareMM et suivantes) dans FastMM4Options.inc? Avez-vous également compilé avec des informations de débogage?

+0

Je l'ai fait. et il est compilé avec des informations de débogage, dans la console des messages il y a des infos à ce sujet. – migajek

Questions connexes