Comment trouvez-vous qui a créé un tas privé?

J’ai une application Windows C ++ qui a une fuite de mémoire. Je suis certain que la fuite se trouve dans l’une de nos nombreuses bibliothèques liées. J’ai instrumenté la nouvelle fonction globale et la fonction de suppression dans notre application et les appels à l’application pour allouer de la mémoire me semblent bons. Ils représentent cependant environ 10% du processus de travail. Lorsque je marche dans les tas // http://msdn.microsoft.com/en-us/library/ee175819%28v=VS.85%29.aspx retourné par GetProcessHeaps () http://msdn.microsoft.com/en -us / library / aa366571% 28v = VS.85% 29.aspx

Je peux voir environ une douzaine de tas, dont l’un contient environ un demi-gigaoctet d’allocations. Opps!

Ok alors comment puis-je savoir laquelle des bibliothèques le fait? Y a-t-il un moyen de savoir qui alloue les tas? J’ai le manche de chaque tas.

La méthode simple consisterait à accrocher la fonction HeapCreate() . Un exemple de cela est ici .