Hello,
Sorry to play necromancer with this subject but I have a similar problem with the SDL3 on debian 13 so interracting with Wayland not X11.
With the following code :
File Edit Options Buffers Tools C Help
#include <SDL3/SDL.h>
int main(void)
{
SDL_Window *window;
SDL_Renderer *renderer;
int ret;
ret = SDL_Init(SDL_INIT_TIMER | SDL_INIT_VIDEO);
if (ret != 0)
{
SDL_LogError(SDL_LOG_CATEGORY_ERROR, "[DEBUG] > %s", SDL_GetError());
return (-1);
}
window = SDL_CreateWindow("MyGameOfLife", 800, 600, SDL_WINDOW_MOUSE_FOCUS);
if (window == NULL)
{
SDL_LogError(SDL_LOG_CATEGORY_ERROR, "[DEBUG] > %s", SDL_GetError());
return (-1);
}
renderer = SDL_CreateRenderer(window, NULL, SDL_RENDERER_ACCELERATED);
if (renderer == NULL)
{
SDL_LogError(SDL_LOG_CATEGORY_ERROR, "[DEBUG] > %s", SDL_GetError());
return (-1);
}
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
return (0);
}
==15917== 1 errors in context 1 of 79:
==15917== Invalid read of size 8
==15917== at 0x4023B94: strncmp (strcmp-sse2.S:162)
==15917== by 0x4004B9E: is_dst (dl-load.c:216)
==15917== by 0x4005A0D: _dl_dst_substitute (dl-load.c:295)
==15917== by 0x4005CB2: fillin_rpath.isra.0 (dl-load.c:483)
==15917== by 0x4005FA2: decompose_rpath (dl-load.c:654)
==15917== by 0x400815B: _dl_map_object (dl-load.c:2111)
==15917== by 0x4002260: openaux (dl-deps.c:64)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x40025C9: _dl_map_object_deps (dl-deps.c:232)
==15917== by 0x400BA6C: dl_open_worker_begin (dl-open.c:592)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x400B1C5: dl_open_worker (dl-open.c:782)
==15917== Address 0x6a76749 is 9 bytes inside a block of size 15 alloc'd
==15917== at 0x48417B4: malloc (vg_replace_malloc.c:381)
==15917== by 0x402397A: malloc (rtld-malloc.h:56)
==15917== by 0x402397A: strdup (strdup.c:42)
==15917== by 0x4005F34: decompose_rpath (dl-load.c:629)
==15917== by 0x400815B: _dl_map_object (dl-load.c:2111)
==15917== by 0x4002260: openaux (dl-deps.c:64)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x40025C9: _dl_map_object_deps (dl-deps.c:232)
==15917== by 0x400BA6C: dl_open_worker_begin (dl-open.c:592)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x400B1C5: dl_open_worker (dl-open.c:782)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x400B5B7: _dl_open (dl-open.c:884)
==15917==
==15917==
==15917== 1 errors in context 2 of 79:
==15917== Invalid read of size 8
==15917== at 0x4023B94: strncmp (strcmp-sse2.S:162)
==15917== by 0x4004B9E: is_dst (dl-load.c:216)
==15917== by 0x400596E: _dl_dst_count (dl-load.c:253)
==15917== by 0x4005B47: expand_dynamic_string_token (dl-load.c:395)
==15917== by 0x4005CB2: fillin_rpath.isra.0 (dl-load.c:483)
==15917== by 0x4005FA2: decompose_rpath (dl-load.c:654)
==15917== by 0x400815B: _dl_map_object (dl-load.c:2111)
==15917== by 0x4002260: openaux (dl-deps.c:64)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x40025C9: _dl_map_object_deps (dl-deps.c:232)
==15917== by 0x400BA6C: dl_open_worker_begin (dl-open.c:592)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== Address 0x6a76749 is 9 bytes inside a block of size 15 alloc'd
==15917== at 0x48417B4: malloc (vg_replace_malloc.c:381)
==15917== by 0x402397A: malloc (rtld-malloc.h:56)
==15917== by 0x402397A: strdup (strdup.c:42)
==15917== by 0x4005F34: decompose_rpath (dl-load.c:629)
==15917== by 0x400815B: _dl_map_object (dl-load.c:2111)
==15917== by 0x4002260: openaux (dl-deps.c:64)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x40025C9: _dl_map_object_deps (dl-deps.c:232)
==15917== by 0x400BA6C: dl_open_worker_begin (dl-open.c:592)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x400B1C5: dl_open_worker (dl-open.c:782)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x400B5B7: _dl_open (dl-open.c:884)
==15917==
==15917== ERROR SUMMARY: 79 errors from 79 contexts (suppressed: 0 from 0)
run with :
valgrind -s --leak-check=full --show-leak-kinds=all ./a.out
I get errors like this:
==15917== 107,648 bytes in 464 blocks are still reachable in loss record 2,687 of 2,688
==15917== at 0x48417B4: malloc (vg_replace_malloc.c:381)
==15917== by 0x625C192: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
==15917== by 0x627255E: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
==15917== by 0x6263DE8: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
==15917== by 0x625F6F3: ??? (in /usr/lib/x86_64-linux-gnu/libGLX_mesa.so.0.0.0)
==15917== by 0x4A343AC: X11_GL_GetVisual (in /usr/local/lib/libSDL3.so.0.0.0)
==15917== by 0x4A3332E: X11_GL_InitExtensions (in /usr/local/lib/libSDL3.so.0.0.0)
==15917== by 0x4A33032: X11_GL_LoadLibrary (in /usr/local/lib/libSDL3.so.0.0.0)
==15917== by 0x49A5CBE: SDL_GL_LoadLibrary_REAL (in /usr/local/lib/libSDL3.so.0.0.0)
==15917== by 0x49A1AAC: SDL_RecreateWindow (in /usr/local/lib/libSDL3.so.0.0.0)
==15917== by 0x48DC0B3: GL_CreateRenderer (in /usr/local/lib/libSDL3.so.0.0.0)
==15917== by 0x48CB849: SDL_CreateRendererWithProperties_REAL (in /usr/local/lib/libSDL3.so.0.0.0)
==15917==
==15917== 472,368 bytes in 1 blocks are still reachable in loss record 2,688 of 2,688
==15917== at 0x484682F: realloc (vg_replace_malloc.c:1437)
==15917== by 0x5A3C057: ??? (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==15917== by 0x5A39F4C: _XimLocalOpenIM (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==15917== by 0x5A38687: _XimOpenIM (in /usr/lib/x86_64-linux-gnu/libX11.so.6.4.0)
==15917== by 0x4A2E298: X11_InitKeyboard (in /usr/local/lib/libSDL3.so.0.0.0)
==15917== by 0x4A36B22: X11_VideoInit (in /usr/local/lib/libSDL3.so.0.0.0)
==15917== by 0x499E2DA: SDL_VideoInit (in /usr/local/lib/libSDL3.so.0.0.0)
==15917== by 0x48731D7: SDL_InitSubSystem_REAL (in /usr/local/lib/libSDL3.so.0.0.0)
==15917== by 0x48733E0: SDL_Init_REAL (in /usr/local/lib/libSDL3.so.0.0.0)
==15917== by 0x4892025: SDL_Init_DEFAULT (in /usr/local/lib/libSDL3.so.0.0.0)
==15917== by 0x489B922: SDL_Init (in /usr/local/lib/libSDL3.so.0.0.0)
==15917== by 0x1091AA: main (in /home/n0b0dy/Dev/sandbox/a.out)
==15917==
==15917== LEAK SUMMARY:
==15917== definitely lost: 0 bytes in 0 blocks
==15917== indirectly lost: 0 bytes in 0 blocks
==15917== possibly lost: 70,737 bytes in 169 blocks
==15917== still reachable: 1,387,873 bytes in 5,269 blocks
==15917== suppressed: 0 bytes in 0 blocks
==15917==
==15917== ERROR SUMMARY: 79 errors from 79 contexts (suppressed: 0 from 0)
==15917==
==15917== 1 errors in context 1 of 79:
==15917== Invalid read of size 8
==15917== at 0x4023B94: strncmp (strcmp-sse2.S:162)
==15917== by 0x4004B9E: is_dst (dl-load.c:216)
==15917== by 0x4005A0D: _dl_dst_substitute (dl-load.c:295)
==15917== by 0x4005CB2: fillin_rpath.isra.0 (dl-load.c:483)
==15917== by 0x4005FA2: decompose_rpath (dl-load.c:654)
==15917== by 0x400815B: _dl_map_object (dl-load.c:2111)
==15917== by 0x4002260: openaux (dl-deps.c:64)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x40025C9: _dl_map_object_deps (dl-deps.c:232)
==15917== by 0x400BA6C: dl_open_worker_begin (dl-open.c:592)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x400B1C5: dl_open_worker (dl-open.c:782)
==15917== Address 0x6a76749 is 9 bytes inside a block of size 15 alloc’d
==15917== at 0x48417B4: malloc (vg_replace_malloc.c:381)
==15917== by 0x402397A: malloc (rtld-malloc.h:56)
==15917== by 0x402397A: strdup (strdup.c:42)
==15917== by 0x4005F34: decompose_rpath (dl-load.c:629)
==15917== by 0x400815B: _dl_map_object (dl-load.c:2111)
==15917== by 0x4002260: openaux (dl-deps.c:64)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x40025C9: _dl_map_object_deps (dl-deps.c:232)
==15917== by 0x400BA6C: dl_open_worker_begin (dl-open.c:592)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x400B1C5: dl_open_worker (dl-open.c:782)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x400B5B7: _dl_open (dl-open.c:884)
==15917==
==15917==
==15917== 1 errors in context 2 of 79:
==15917== Invalid read of size 8
==15917== at 0x4023B94: strncmp (strcmp-sse2.S:162)
==15917== by 0x4004B9E: is_dst (dl-load.c:216)
==15917== by 0x400596E: _dl_dst_count (dl-load.c:253)
==15917== by 0x4005B47: expand_dynamic_string_token (dl-load.c:395)
==15917== by 0x4005CB2: fillin_rpath.isra.0 (dl-load.c:483)
==15917== by 0x4005FA2: decompose_rpath (dl-load.c:654)
==15917== by 0x400815B: _dl_map_object (dl-load.c:2111)
==15917== by 0x4002260: openaux (dl-deps.c:64)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x40025C9: _dl_map_object_deps (dl-deps.c:232)
==15917== by 0x400BA6C: dl_open_worker_begin (dl-open.c:592)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== Address 0x6a76749 is 9 bytes inside a block of size 15 alloc’d
==15917== at 0x48417B4: malloc (vg_replace_malloc.c:381)
==15917== by 0x402397A: malloc (rtld-malloc.h:56)
==15917== by 0x402397A: strdup (strdup.c:42)
==15917== by 0x4005F34: decompose_rpath (dl-load.c:629)
==15917== by 0x400815B: _dl_map_object (dl-load.c:2111)
==15917== by 0x4002260: openaux (dl-deps.c:64)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x40025C9: _dl_map_object_deps (dl-deps.c:232)
==15917== by 0x400BA6C: dl_open_worker_begin (dl-open.c:592)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x400B1C5: dl_open_worker (dl-open.c:782)
==15917== by 0x4C58219: _dl_catch_exception (dl-error-skeleton.c:208)
==15917== by 0x400B5B7: _dl_open (dl-open.c:884)
==15917==
==15917== ERROR SUMMARY: 79 errors from 79 contexts (suppressed: 0 from 0)
in addition to the “fake errors” what is not nothing if we consider I have done nothing yet but just initialized SDL, created a window and a renderer and cleaned everything.
What causes the fake leaks please?
Am I condamned to use a valgrind errors suppression file to hide the internal errors to be able to debug my program?