我在Ubuntu 12.04上使用Valgrind插件運行Eclipse IDE。我一直在用C++開發一款遊戲已經有相當長的一段時間了,我似乎在某個地方出現了內存錯誤。通常情況下,我會跟Valgrind跟蹤這些。但是,當我運行valgrind時,glut無法初始化。我應該注意到,當我不使用valgrind時,遊戲初始化時沒有問題。我的主要功能的代碼如下:freeglut未能用valgrind打開顯示
int main(int argc, char** argv) {
char windowTitle[12] = "Game Window";
printf("Initializing Glut...\n");
glutInit(&argc, argv);
printf("Glut initialized!\n");
alutInit(&argc, argv);
Game_Object* game = new Game_Object(windowTitle, 1200, 675, argc, argv);
delete game;
printf("game ended\n");
return 0;
}
結果輸出到控制檯:
Initializing Glut
freeglut (/home/dsnettleton/Documents/Programming/Eclipse/workspace/Plutoids/Debug/Plutoids): failed to open display ''
顯然,該方案沒有得到很遠的valgrind與運行。 在我的發展的最後階段真的令人沮喪,只是試圖消除內存錯誤而陷入困境。什麼可能會導致初始化過剩,我該怎麼辦才能解決問題?
不是一個真正的回答你的問題,但:你有沒有嘗試使用垃圾收集器,像Boehm_CG內存調試。 Mozilla使用它來達到這個目的。 http://www.hpl.hp.com/personal/Hans_Boehm/gc/leak.html – datenwolf
我試過了,但它沒有給我任何額外的輸出到控制檯。我不認爲這個問題本身就是一個漏洞;它可能與無效指針有關,或者可能在某處釋放某些內存(每次偶爾當我結束程序時,它會因損壞的雙鏈表消息而崩潰)。 – dsnettleton