Hi,

Thank you for your feedback,

Could you test this again with current SVN? A number of leaks following
AG_Destroy() have been addressed since version 1.3.4.

You don't need anything other than AG_Destroy() at the end of your program.

I've attached the valgrind suppression file I'm using on my Linux/amd64
workstation.

On Sun, Apr 04, 2010 at 05:03:49AM -0500, Avery Fay wrote:
> Hello,
> 
> I usually like to start projects with clean valgrind output so that I can
> easily detect if I've inadvertently leaked memory. The problem I'm having is
> that even the simplest agar app is causing a lot of leak warnings from
> valgrind. For example, I've attached the valgrind output from running the
> demos/minimal program.
> 
> Some of it probably isn't real like the X11 stuff, but I'm not sure about
> the rest. Are these real leaks? Do I need to add something more than
> AG_Destroy at the end of the program?
> 
> Thanks,
> Avery Fay


> _______________________________________________
> Agar mailing list
> [email protected]
> http://libagar.org/lists.html

{
        SDL_SYS_CreateThread (pthread init)
        Memcheck:Param
        write(buf)
        fun:__pthread_initialize_manager
        fun:pthread_create@@GLIBC_2.2.5
        fun:SDL_SYS_CreateThread
}

{
        SDL_SYS_CreateThread (pthread_create)
        Memcheck:Param
        write(buf)
        fun:pthread_create@@GLIBC_2.2.5
        fun:SDL_SYS_CreateThread
}

{
        Glibc clone use (child_tidptr)
        Memcheck:Param
        clone(child_tidptr)
        fun:clone
}

{
        SDL_SetVideoMode X11 write (write)
        Memcheck:Param
        write(buf)
        fun:write
        obj:/usr/lib64/libX11.so.6.2.0
        obj:/usr/lib64/libX11.so.6.2.0
        fun:_XReply
        fun:XGetWindowProperty
        fun:XGetWMHints
        obj:/usr/lib64/libSDL-1.2.so.0.7.1
        obj:/usr/lib64/libSDL-1.2.so.0.7.1
        fun:SDL_SetVideoMode
        fun:AG_ViewInit
        fun:AG_InitVideo
        fun:main
}

{
   Linux 1
   Memcheck:Addr8
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/ld-2.6.1.so
}

{
   XCreateBitmap
   Memcheck:Addr8
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libdl-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libdl-2.6.1.so
   fun:dlopen
   obj:/usr/lib64/libX11.so.6.2.0
}

{
   __libc_dlopen_mode 1
   Memcheck:Addr8
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   fun:__libc_dlopen_mode
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/libc-2.6.1.so
}

{
   __libc_dlopen_mode 2
   Memcheck:Addr8
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   fun:__libc_dlopen_mode
   obj:/lib64/libc-2.6.1.so
}

{
   __libc_dlsym
   Memcheck:Addr8
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   fun:__libc_dlsym
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/libc-2.6.1.so
}

{
   __libc_dlopen_mode 3
   Memcheck:Addr8
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   fun:__libc_dlopen_mode
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/libc-2.6.1.so
}

{
   __libc_dlopen_mode 4
   Memcheck:Addr8
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libc-2.6.1.so
   fun:__libc_dlopen_mode
   obj:/lib64/libc-2.6.1.so
   obj:/lib64/libc-2.6.1.so
}
{
   agar dlopen()
   Memcheck:Addr8
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libdl-2.6.1.so
   obj:/lib64/ld-2.6.1.so
   obj:/lib64/libdl-2.6.1.so
   fun:dlopen
   fun:LoadDSO_DLOPEN
}
{
   SetKeyboardState
   Memcheck:Cond
   fun:X11_SetKeyboardState
   fun:X11_PumpEvents
   fun:SDL_PumpEvents
   fun:SDL_PollEvent
   fun:AG_EventLoop_FixedFPS
   fun:main
}
{
   junk 1234
   Memcheck:Cond
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
}
{
   getpwuid_r
   Memcheck:Cond
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libc-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libc-2.9.so
   fun:__libc_dlopen_mode
   fun:__nss_lookup_function
   obj:/lib64/libc-2.9.so
   fun:getpwuid_r
   fun:getpwuid
}
{
   getpwuid_r 2
   Memcheck:Cond
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libc-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libc-2.9.so
   fun:__libc_dlopen_mode
   fun:__nss_lookup_function
   obj:/lib64/libc-2.9.so
   fun:getpwuid_r
}
{
   nss_lookup_function
   Memcheck:Cond
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libc-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libc-2.9.so
   fun:__libc_dlopen_mode
   fun:__nss_lookup_function
}
{
   junk 2
   Memcheck:Addr8
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libc-2.9.so
   obj:/lib64/ld-2.9.so
}
{
   nvidia dlopen
   Memcheck:Addr8
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libdl-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libdl-2.9.so
   fun:dlopen
   obj:/usr/lib64/opengl/nvidia/lib/libGL.so.180.60
}
{
   Agar UpdateKeyboard
   Memcheck:Cond
   fun:UpdateKeyboard
   fun:ProcessEvents
   fun:GenericEventLoop
   fun:main
}
{
   nvidia XSend
   Memcheck:Param
   writev(vector[...])
   obj:/lib64/libc-2.9.so
   obj:/usr/lib64/libxcb.so.1.1.0
   obj:/usr/lib64/libxcb.so.1.1.0
   fun:xcb_writev
   fun:_XSend
   obj:/usr/lib64/opengl/nvidia/lib/libGL.so.180.60
   obj:*
   obj:*
}
{
   nvidia dlopen
   Memcheck:Cond
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libdl-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libdl-2.9.so
   fun:dlopen
   obj:/usr/lib64/opengl/nvidia/lib/libGL.so.180.60
   obj:/usr/lib64/libSDL-1.2.so.0.11.2
   obj:/usr/lib64/opengl/nvidia/tls/libnvidia-tls.so.180.60
   fun:SDL_LoadObject
}
{
   <insert a suppression name here>
   Memcheck:Cond
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libc-2.9.so
   obj:/lib64/libdl-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libdl-2.9.so
   fun:dlsym
   obj:/usr/lib64/opengl/nvidia/tls/libnvidia-tls.so.180.60
   fun:SDL_LoadFunction
   obj:/usr/lib64/libSDL-1.2.so.0.11.2
}
{
   SDL_LoadFunction
   Memcheck:Cond
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libc-2.9.so
   obj:/lib64/libdl-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libdl-2.9.so
   fun:dlsym
   obj:/usr/lib64/opengl/nvidia/tls/libnvidia-tls.so.180.60
   fun:SDL_LoadFunction
   obj:/usr/lib64/libSDL-1.2.so.0.11.2
   obj:/usr/lib64/libSDL-1.2.so.0.11.2
   obj:/usr/lib64/libSDL-1.2.so.0.11.2
}
{
   SDL_LoadFunction 2
   Memcheck:Addr8
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libc-2.9.so
   obj:/lib64/libdl-2.9.so
   obj:/lib64/ld-2.9.so
   obj:/lib64/libdl-2.9.so
   fun:dlsym
   obj:/usr/lib64/opengl/nvidia/tls/libnvidia-tls.so.180.60
   fun:SDL_LoadFunction
   obj:/usr/lib64/libSDL-1.2.so.0.11.2
}
{
   foo 1
   Memcheck:Param
   writev(vector[...])
   obj:/lib64/libc-2.9.so
   obj:/usr/lib64/libxcb.so.1.1.0
   obj:/usr/lib64/libxcb.so.1.1.0
   fun:xcb_writev
   fun:_XSend
   fun:_XReply
   fun:XSync
   obj:/usr/lib64/libSDL-1.2.so.0.11.2
   obj:/usr/lib64/libSDL-1.2.so.0.11.2
   fun:SDL_SetVideoMode
   fun:OpenVideo
   fun:AG_InitGraphics
}
_______________________________________________
Agar mailing list
[email protected]
http://libagar.org/lists.html

Reply via email to