Comment détecter les fuites de mémoire dans le code JNI Android? J'utilise FroyoDétection des fuites de mémoire natives dans le code JNI Android
Répondre
Mise à jour 2017:valgrind is available pour Android. La fonction de débogage malloc intégrée a été étendue de manière significative en Android N, et est très utile pour trouver des fuites de mémoire. Vous devrez peut-être _exit()
l'application pour déclencher le vidage.
La fonctionnalité DDMS décrite ci-dessous obtient actuellement un brief mention dans les documents officiels.
Il existe une fonctionnalité expérimentale non prise en charge dont vous pouvez tirer parti.
Dans votre fichier de configuration DDMS (par exemple ~/.android/ddms.cfg
sous Linux), ajoutez "native = true". Cela active l'onglet Heap natif.
Ensuite, activer le suivi de l'allocation de tas natif sur l'appareil, et redémarrez le cadre de l'application:
% adb shell setprop libc.debug.malloc 1
% adb shell stop
% adb shell start
(Notez cela nécessite racine Notez également que cela ne concerne que les versions récentes, sur les versions plus anciens, vous aussi besoin. pour remplacer manuellement libc.so avec libc_debug.so dans/system/lib sur le périphérique.)
Vous pouvez déterminer si le périphérique a été configuré correctement en surveillant la sortie logcat lors de l'exécution d'une commande simple ("shell adb ls "). Si vous voyez:
I/libc (4847): ls using MALLOC_DEBUG = 1 (leak checker)
alors vous savez que vous l'avez activé. Maintenant, vous pouvez utiliser les fonctionnalités de l'onglet Native Heap pour récupérer des instantanés de l'utilisation de la mémoire heap. DDMS extrait automatiquement les symboles des bibliothèques partagées dans votre arborescence source Android. Bien sûr, cela nécessite que vous ayez une arborescence source Android complète et que votre appareil exécute du code à partir de celui-ci. Si ce n'est pas le cas, les traces de la pile ne peuvent pas être décodées en noms de symboles, ce qui réduit l'utilité de la fonctionnalité.
Je l'ai fait, mais nous ne pouvons pas confirmer que c'est une fuite de mémoire, il affiche juste les allocations de mémoire. – Vinay
Droite. Vous devez regarder les allocations au fil du temps. Si elles se développent continuellement, vous comprendrez d'où vient la croissance à partir de la trace de la pile, et traquer à partir de là. Il n'y a pas encore de valgrind pour Android. – fadden
Veuillez définir "versions récentes". – tomwhipple
U besoin de prendre l'instantané avant et après le test a couru. Puis appuyez sur le bouton +/- puis il indiquera l'emplacement de la mémoire conservée.
Cette réponse ne fournit aucune valeur. – pkanev
J'ai utilisé dans JB, JB +, KITKAT et sucette également. Son très bon outil dans Android pour trouver les fuites.
peut-être que vous pouvez partager une URL, merci –
- 1. Outil de détection des fuites de mémoire
- 2. Détection de fuites de mémoire TWebModule
- 3. Détection des fuites de mémoire dans ActionScript-3 Project
- 4. Traçage des fuites mémoire/fenêtre dans Android?
- 5. fuites de mémoire d'applications Android
- 6. G ++ outil de détection de fuites de mémoire multi-plateforme
- 7. Méthode de détection de fuites de mémoire C++
- 8. iOS4 (UIAlertView) pourquoi ce code provoque des fuites de mémoire?
- 9. vérification des fuites de mémoire dans qt_creator
- 10. Fuites de mémoire dans le navigateur
- 11. Fuites de mémoire dans le cacao
- 12. Fuites de mémoire intermittentes
- 13. fuites mémoire dans MyFaces
- 14. mémoire de chasse fuites
- 15. Suivi des fuites de mémoire de cacao
- 16. Prévenir les fuites de mémoire dans ce code javascript?
- 17. FFMpeg jni dans Android?
- 18. mémoire problème des fuites iPhone
- 19. Trouver des fuites de mémoire sans Clang
- 20. Prévention des fuites de mémoire AJAX
- 21. Chargement des fuites de mémoire image miniature
- 22. Trouver des fuites de mémoire dans le code C sur Windows
- 23. UIViews associés à des fuites de mémoire
- 24. Outils pour le débogage des fuites de mémoire en JavaScript
- 25. jQuery Ajax Fuites de mémoire
- 26. Détection des modifications effectuées dans le code
- 27. Comportement de mémoire étrange dans JNI
- 28. Problème avec le code JNI généré par SWIG sur Android
- 29. fuites de mémoire connues dans 3ds max?
- 30. Le débogage des fuites de mémoire avec libMallocDebug
possible Dupliquer: http://stackoverflow.com/questions/2851483/tracing-the-memory-window-leaks-in-android – Praveen
Je cherche des fuites de mémoire de code natif – Vinay