2011-11-13 3 views
2

메모리 누수의 원인이되는 것으로 알려진 SDL의 알려진 방법이나 기능이 있습니까?SDL 이벤트 메모리 누수

시간이지나면서 .1MB의 메모리가 프로그램의 메모리 사용량에 달라 붙는 것을 보았습니다. (즉, .4MB가 정확히 3 분 안에 추가되었습니다).

필자는 모든 표면 드로잉/블링 기능을 주석 처리했습니다. 메모리 누수를 확인하는

// .. Intilize 
char quit = 0; 
Uint8* keystate = NULL; 
SDL_Event hEvent; 
while (!quit) 
{ 
    // .. Code 

    while (SDL_PollEvents(&hVvent)) { 
     keystate = SDL_GetKeystate(NULL); 
     // .. Event processing 
    } 

    // .. More Code 

    if (SDL_Flip(screen) == -1) 
     return 1 

    SDL_Delay(1); 
} 
// .. Cleanup 
+0

SDL의 누수에 대해 잘 모릅니다. 그것이 귀하의 코드에 있음을 알 수 있습니다. 누수가 사라 지거나 질문에 전체 누출 코드를 게시 할 때까지 프로그램을 계속 스트립해야합니다. – rodrigo

답변

1

내가 가장 좋아하는 도구 Valgrind입니다 : 꽤 많은 단지 이벤트 구조 및 화면 반전, 전 메인 게임 루프입니다. 마무리 후

valgrind --leak-check=full --show-reachable=yes ./executable 

메모리 누수 정보의 출력을 확인하십시오 은 당신의 코드를 컴파일 한 후, 바로 다음 명령을 실행합니다. 이 도구는 -v 플래그를 사용하여 더 자세한 정보를 표시 할 수 있습니다.

1
valgrind --track-origins=yes --leak-check=full --show-reachable=yes ./executable