问题描述
我的目标是尽可能高效地处理内存,但是到目前为止,我运行的每个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 (将#修改为@)