6
votes

Outils permettant de détecter des fuites de mémoire pour C # et une application C ++ non exploitée

Nous avons une application développée dans le C # .NET Framework 2.0 qui interagit avec un composant COM (qui est développé dans le code non géré de C ++). Parfois, l'application jette une exception hors mémoire (assez difficile à reproduire).

Nous aimerions avoir un outil pour savoir si nous avons des fuites de mémoire et identifions la cause première de l'exception de mémoire. Quels outils seraient les meilleurs pour cela? Un outil idéal serait en mesure de joindre à un processus d'exécution sur la machine d'un utilisateur à effectuer une analyse.

Nous avons essayé le profileur de mémoire .NET mais qui ne peut que correspondre à un processus d'exécution de .NET Framework 4.0. Nous avons également utilisé le validateur de la mémoire (détecteur de fuite de mémoire C ++); Cependant, cet outil ne nous a pas donné suffisamment d'astuces lors de la fixation à un processus de course.


0 commentaires

4 Réponses :


0
votes

0 commentaires

0
votes

Pour les tests les plus basiques, vous pouvez utiliser Sysinternals ProceXP.exe pour vérifier si vous avez vraiment un problème de fuite de mémoire. Beaucoup de code COM jetterait hors de mémoire, lorsqu'un pointeur NULL est rencontré lorsqu'il n'était pas attendu, le code d'exception peut donc être trompeur.


0 commentaires

2
votes

réponse courte

Avez-vous essayé vérificateur d'application Microsoft ? C'est un très petit, j'avais datant un outil minimaliste, mais étonnamment puissant.

réponse longue

Au cours de mon enquête sur les problèmes de la mémoire de la mémoire, j'ai utilisé Microsoft Windbg , vérificateur d'application Microsoft et j'ai bien évalué Profileur de performance des fourmis de porte rouge (que j'ai recommandé d'acheter et j'ai personnellement vu recommandé d'acheter par divers développeurs dans de nombreuses équipes différentes), dottrace et . Profileur de mémoire net .

Il existe de manière définitive pour obtenir et apprendre à utiliser un ou plusieurs de ces outils, peut-être ensuite installé sur un environnement de développement virtuel organisé sur une machine virtuelle regroupée entre les développeurs de l'équipe.

Si vous évaluez ceux-ci et de tout autre outil, le point de vente grand pour moi serait la possibilité d'enquêter sur des décharges de mémoire prises avec Windbg, car ceux-ci sont les plus facilement obtenus même de clients.


0 commentaires

3
votes

Utilisez un profileur de mémoire - ils peuvent aider à trouver de telles fuites, par exemple:


0 commentaires