Débogage léger de fuite de mémoire sur Linux

J'ai regardé pour les réponses d'abord et vu que Valgrind tout le monde est l'outil de prédilection pour les fuite de mémoire de débogage sur linux. Malheureusement Valgrind ne semble pas fonctionner pour mes fins. Je vais essayer d'expliquer pourquoi.

Contraintes:

  • La fuite ne se reproduisent que dans l'environnement du client. En raison de certaines
    restrictions légales, nous devons travailler avec les binaires. Pas reconstruit.
  • Régulièrement de l'environnement de notre application consomme environ 10% de l'UC. Dire, nous pouvons
    tolérer jusqu'à 10x utilisation du PROCESSEUR augmente. Valgrind par défaut memcheck
    paramètres n'bien pire faire de notre application qui ne répond pas pour longtemps
    périodes de temps.

Ce dont j'ai besoin est un équivalent de Microsoft UMDH: activer le suivi de pile pour chaque allocation de tas, puis à certain point de temps de vidage de toutes les allocations regroupés par des piles et ordonné par le nombre d'allocations dans l'ordre décroissant. Notre application navires à la fois sur Windows et plates-formes Linux, donc je sais que les performances sur Windows sous UMDH est encore supportable.

Ici sont les outils/méthodes j'ai considéré

  • Valgrind's -memcheck et –massif outils qu'Ils font beaucoup plus que nécessaire (comme la numérisation de tout le processus de la mémoire pour chaque allocation
    pointeur), ils sont trop lents, et ils ne comprennent toujours pas faire exactement ce que je
    besoin (vidage de piles d'appels triés par compte), donc je vais écrire certaines
    les scripts d'analyse de la sortie
  • dmalloc bibliothèque (dmalloc.com) nécessite de nouvelles binaires
  • LeakTracer (http://www.andreasen.org/LeakTracer/) ne Fonctionne qu'avec C++
    de new/delete (j'ai besoin de malloc/free), n'a pas de groupe-par-pile
    et des fonctionnalités de tri
  • La mise en œuvre de l'outil de moi .si la bibliothèque à l'aide de LD_PRELOAD
    mécanisme
    (Primordial 'malloc' à l'aide du mécanisme de LD_PRELOAD)
    Qui va prendre au moins une semaine compte tenu de mon codage-pour-Linux compétences et il se sent
    comme inventer une bicyclette.

Ai-je raté quelque chose? Y a-léger Valgrind options existantes ou LD_PRELOAD outil?

source d'informationauteur glagolig