Sitter med ett väldigt konstigt problem just nu. Jag jobbade med ett stort projekt i C++ (Visual C++ 4.2-2003) under 7 års tid, och inför varje ny produktversion så råkade vi ut för några buggar som bara uppkom i release-bygget.Olika resultat i debug och release
Har ett program som ritar ut ett antal trianglar i en 3D rymd. När jag kör debug så stämmer allt helt perfekt men ändrar jag till release så ritas trianglarna helt huller om buller. Vad kan detta bero på?
Jag fråga någon förut och han nämde att det kan bero på oinitierade variabler. Jag har kollat mitt projekt och kan inte hitta något ställe där variabler är oinitierade.
Vad kan det vara som skapar detta problem??Sv: Olika resultat i debug och release
Problemen berodde i stort sett alltid på att variabler initieras (oftast) till 0 eller liknande i debug, men i release kan de innehålla precis vad som helst.
Det var några enstaka fall då det berodde på att det var buggar i optimeraren i kompilatorn som uppstod eftersom koden optimeras väldigt annorlunda i release-bygget, men det var som sagt sällsynt att det hände.
På http://www.codeproject.com/debug/releasemode.asp så finns en matnyttig artikel om problematiken och hur man kan felsöka den. I hjälpen till VC++ så kan du även läsa om hur man ser till att variabler inte initeras i debug-bygget (jag kommer dock inte ihåg switcharna på rakt arm).
Genom att dessutom kompilera med debuginformation i pdb:er i release så kan du sedan debugga hjälpligt även i release. Vid leverans så skickar du bara inte med pdb:erna (se bara till att spara undan dem, de kan vara bra för att felsöka den versionen senare).
/Andreas
Men, ha som ledstjärna: "assume the bug is Yours". Du har förmodligen missat att initera någon variabel någonstans.