Okee, na de vorige topics wederom een probleem. Iedere keer heb ik het idee dat het probleem is opgelost en komt daarna zonder grote wijzigingen wederom terug. Het wijst allemaal naar memory corruption maar het ik kan er met geen mogelijkheid achter komen. Het probleem doet zich niet altijd voor en de locatie (step by step) waar het gebeurt varieért ook iedere keer. Geen goede condities om te debuggen
.
Purity en Boundschecker vinden geen enkele problemen. Ook dit helpt niet echt. Ik had stille hoop dat een van deze twee applicaties wel enige problemen zou vinden.
Het huidige probleem is dat de waarde van een classvariabele spontaan veranderd. Het gaat hierbij om een windows socket handle. De waarde veranderd spontaan van vijfduizend-nogwat naar 0. (Dit geeft mij het idee dat het door een memset instructie komt. Ook al wordt er geen memset instructie uitgevoerd
)
Hier een code fragment waar de socket handle spontaan veranderd:
Ik heb werkelijk geen idee meer hoe ik dit probleem op zou moeten kunnen lossen
. Dit heb ik eerder gehoord
. Hoe kom ik er achter (met VS2005) waar de waarde wordt veranderd en waarom deze wordt veranderd.
Een hulpeloze tweaker
.
Purity en Boundschecker vinden geen enkele problemen. Ook dit helpt niet echt. Ik had stille hoop dat een van deze twee applicaties wel enige problemen zou vinden.
Het huidige probleem is dat de waarde van een classvariabele spontaan veranderd. Het gaat hierbij om een windows socket handle. De waarde veranderd spontaan van vijfduizend-nogwat naar 0. (Dit geeft mij het idee dat het door een memset instructie komt. Ook al wordt er geen memset instructie uitgevoerd
Hier een code fragment waar de socket handle spontaan veranderd:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| class ClassA { private: int m_var; string m_var2; public: void resetContents(void); }; void ClassA::resetContents(void) { this->m_var = 0; this->m_var2 = ""; } // // Hier klopt de watch van de socket handle nog // Class A; A.resetContents(); // // Hier klopt de watch waarde niet meer // |
Ik heb werkelijk geen idee meer hoe ik dit probleem op zou moeten kunnen lossen
Een hulpeloze tweaker
