voilà: J'écris une classe ( faisant appel à d'autres codes) et mon intuition me fait soupçonner que je vais avoir des problèmes avec les objets de ce type.
J'écris donc des tests dont un qui consiste à rajouter un finalize pour tracer la récupération de l'objet, créer un tel objet, mettre la référence à null puis en boucle créer un paquet d'objets qui sature la mémoire.
D'habitude on voit la trace ... mais pas là! Donc je me torture l'esprit pour essayer de comprendre où cet objet est encore référencé ... et mon neurone refuse de me trouver une solution
J'essaye de reproduire le problème avec des objets analogues ... qui eux n'ont pas de problème! A force de supprimer des références membres j'ai trouvé la référence membre qui déclenche le souci: sauf que je ne comprends pas en quoi cette référence qui n'a pas elle même de référence sur l'objet "contenant" peut poser problème....
Le code a à peu près cette allure:
Bien entendu ce code ne donne pas d'indications sur le fond du problème qui est sans doute lié à la nature de "TypeB"....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 class ClasseAProbleme { // quelques variables membres private TypeA refA ; // TypeA n'est pas une classe membre d'instance private TypeB refB ; // même remarque public ClassAProbleme() { // initialisations diverses refa = new TypeA(this.var1) ; refB = new TypeB(refa) ; } // si je met refB à null ça marche ..... } // code du main dans un test ClasseAProbleme probleme = new ClasseAProbleme() ; probleme = null ; // boucle créant des tonnes d'objets // pas de trace si refB est initialisée // trace si refB à null
Donc question: quelqu'un pourrait-il m'indiquer un moyen de "tracer" les références liées à cet objet au travers d'un debuggueur rusé?
Merci








Répondre avec citation
Partager