调试SDL2中的内存泄漏

问题描述

我的目标是尽可能高效地处理内存,但是到目前为止,我运行的每个SDL程序都造成了某种泄漏。

例如,该程序

#include <SDL2/SDL.h>

int main(int argc,char *args[])
{
    SDL_Init(SDL_INIT_VIDEO);
    SDL_Quit();
    return 0;
}

valgrind

==264== HEAP SUMMARY:
==264==     in use at exit: 196,799 bytes in 2,300 blocks
==264==   total heap usage: 8,791 allocs,6,491 frees,2,384,314 bytes allocated
==264== 
==264== LEAK SUMMARY:
==264==    definitely lost: 23,017 bytes in 259 blocks
==264==    indirectly lost: 47,520 bytes in 270 blocks
==264==      possibly lost: 0 bytes in 0 blocks
==264==    still reachable: 126,262 bytes in 1,771 blocks
==264==         suppressed: 0 bytes in 0 blocks
==264== Rerun with --leak-check=full to see details of leaked memory

我看到了this post,其中详细说明了SDL2,X11,nvidia等确实存在内存泄漏,但是在这种情况下,如何过滤掉这些泄漏并跟踪自己的程序内存消耗?我尝试按照建议运行“ leak-check = full ...”,但结果是输出了20000+行长...

Valgrind不是合适的工作工具吗?

编辑:应该注意,我是通过XQuartz在Mac上的Linux docker容器上编译并运行程序的。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)