hi steph, your change in "libgag/src/TextStream.cpp" was not good. Line 467: delete backend; I don't get into the main menu when starting - without valgrind.
Here's the corresponding valgrind output:
==5961== Memcheck, a memory error detector. ==5961== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al. ==5961== Using LibVEX rev 1658, a library for dynamic binary translation. ==5961== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP. ==5961== Using valgrind-3.2.1, a dynamic binary instrumentation framework. ==5961== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al. ==5961== For more details, rerun with: -v ==5961== ==5961== My PID = 5961, parent PID = 4103. Prog and args are: ==5961== src/glob2 ==5961== ==5961== Conditional jump or move depends on uninitialised value(s) ==5961== at 0x400A1DB: _dl_relocate_object (in /lib64/ld-2.5.so) ==5961== by 0x4003780: dl_main (in /lib64/ld-2.5.so) ==5961== by 0x4012779: _dl_sysdep_start (in /lib64/ld-2.5.so) ==5961== by 0x4001362: _dl_start (in /lib64/ld-2.5.so) ==5961== by 0x4000B87: (within /lib64/ld-2.5.so) ==5961== ==5961== Conditional jump or move depends on uninitialised value(s) ==5961== at 0x400A1E4: _dl_relocate_object (in /lib64/ld-2.5.so) ==5961== by 0x4003780: dl_main (in /lib64/ld-2.5.so) ==5961== by 0x4012779: _dl_sysdep_start (in /lib64/ld-2.5.so) ==5961== by 0x4001362: _dl_start (in /lib64/ld-2.5.so) ==5961== by 0x4000B87: (within /lib64/ld-2.5.so) ==5961== ==5961== Conditional jump or move depends on uninitialised value(s) ==5961== at 0x400A1DB: _dl_relocate_object (in /lib64/ld-2.5.so) ==5961== by 0x4003888: dl_main (in /lib64/ld-2.5.so) ==5961== by 0x4012779: _dl_sysdep_start (in /lib64/ld-2.5.so) ==5961== by 0x4001362: _dl_start (in /lib64/ld-2.5.so) ==5961== by 0x4000B87: (within /lib64/ld-2.5.so) ==5961== ==5961== Conditional jump or move depends on uninitialised value(s) ==5961== at 0x400A1E4: _dl_relocate_object (in /lib64/ld-2.5.so) ==5961== by 0x4003888: dl_main (in /lib64/ld-2.5.so) ==5961== by 0x4012779: _dl_sysdep_start (in /lib64/ld-2.5.so) ==5961== by 0x4001362: _dl_start (in /lib64/ld-2.5.so) ==5961== by 0x4000B87: (within /lib64/ld-2.5.so) ==5961== ==5961== Conditional jump or move depends on uninitialised value(s) ==5961== at 0x400A1DB: _dl_relocate_object (in /lib64/ld-2.5.so) ==5961== by 0x40107D9: dl_open_worker (in /lib64/ld-2.5.so) ==5961== by 0x400C885: _dl_catch_error (in /lib64/ld-2.5.so) ==5961== by 0x40101B6: _dl_open (in /lib64/ld-2.5.so) ==5961== by 0x63191D9: (within /lib64/libdl-2.5.so) ==5961== by 0x400C885: _dl_catch_error (in /lib64/ld-2.5.so) ==5961== by 0x631955C: (within /lib64/libdl-2.5.so) ==5961== by 0x6319151: dlopen (in /lib64/libdl-2.5.so) ==5961== by 0x509842A: SDL_LoadObject (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x509B900: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x50AA1B5: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x5094D87: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== ==5961== Conditional jump or move depends on uninitialised value(s) ==5961== at 0x400A40B: _dl_relocate_object (in /lib64/ld-2.5.so) ==5961== by 0x40107D9: dl_open_worker (in /lib64/ld-2.5.so) ==5961== by 0x400C885: _dl_catch_error (in /lib64/ld-2.5.so) ==5961== by 0x40101B6: _dl_open (in /lib64/ld-2.5.so) ==5961== by 0x63191D9: (within /lib64/libdl-2.5.so) ==5961== by 0x400C885: _dl_catch_error (in /lib64/ld-2.5.so) ==5961== by 0x631955C: (within /lib64/libdl-2.5.so) ==5961== by 0x6319151: dlopen (in /lib64/libdl-2.5.so) ==5961== by 0x509842A: SDL_LoadObject (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x509B900: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x50AA1B5: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x5094D87: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== ==5961== Conditional jump or move depends on uninitialised value(s) ==5961== at 0x400A306: _dl_relocate_object (in /lib64/ld-2.5.so) ==5961== by 0x40107D9: dl_open_worker (in /lib64/ld-2.5.so) ==5961== by 0x400C885: _dl_catch_error (in /lib64/ld-2.5.so) ==5961== by 0x40101B6: _dl_open (in /lib64/ld-2.5.so) ==5961== by 0x63191D9: (within /lib64/libdl-2.5.so) ==5961== by 0x400C885: _dl_catch_error (in /lib64/ld-2.5.so) ==5961== by 0x631955C: (within /lib64/libdl-2.5.so) ==5961== by 0x6319151: dlopen (in /lib64/libdl-2.5.so) ==5961== by 0x509842A: SDL_LoadObject (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x509B900: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x50AA1B5: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x5094D87: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== ==5961== Syscall param write(buf) points to uninitialised byte(s) ==5961== at 0x51E2CA0: __write_nocancel (in /lib64/libpthread-2.5.so) ==5961== by 0x5F3C9EE: (within /usr/lib64/libX11.so.6.2.0) ==5961== by 0x5F312EE: (within /usr/lib64/libX11.so.6.2.0) ==5961== by 0x5F313E0: _XReply (in /usr/lib64/libX11.so.6.2.0) ==5961== by 0x5F1929D: XInternAtom (in /usr/lib64/libX11.so.6.2.0) ==5961== by 0x50AACD9: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x50A95D5: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x50AA463: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x5094C95: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x506A9F7: SDL_InitSubSystem (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x506AA1E: SDL_Init (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x61DBA3: GAGCore::GraphicContext::GraphicContext(int, int, unsigned) (GraphicContext.cpp:1746) ==5961== Address 0x717E19E is 14 bytes inside a block of size 16,384 alloc'd ==5961== at 0x4A1FFC6: calloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so) ==5961== by 0x5F1EA54: XOpenDisplay (in /usr/lib64/libX11.so.6.2.0) ==5961== by 0x50AA244: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x5094C95: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x506A9F7: SDL_InitSubSystem (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x506AA1E: SDL_Init (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x61DBA3: GAGCore::GraphicContext::GraphicContext(int, int, unsigned) (GraphicContext.cpp:1746) ==5961== by 0x62996F: GAGCore::Toolkit::initGraphic(int, int, unsigned) (Toolkit.cpp:51) ==5961== by 0x4E6720: GlobalContainer::load() (GlobalContainer.cpp:432) ==5961== by 0x4E4FE2: Glob2::run(int, char**) (Glob2.cpp:246) ==5961== by 0x4E5A00: main (Glob2.cpp:435) ==5961== ==5961== Syscall param write(buf) points to uninitialised byte(s) ==5961== at 0x51E2CDB: (within /lib64/libpthread-2.5.so) ==5961== by 0x5F3C9EE: (within /usr/lib64/libX11.so.6.2.0) ==5961== by 0x5F312EE: (within /usr/lib64/libX11.so.6.2.0) ==5961== by 0x5F313E0: _XReply (in /usr/lib64/libX11.so.6.2.0) ==5961== by 0x5F2B568: XSync (in /usr/lib64/libX11.so.6.2.0) ==5961== by 0x50A8327: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x50A9EA6: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x509396E: SDL_SetVideoMode (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x61B617: GAGCore::GraphicContext::setRes(int, int, unsigned) (GraphicContext.cpp:1810) ==5961== by 0x61DC02: GAGCore::GraphicContext::GraphicContext(int, int, unsigned) (GraphicContext.cpp:1762) ==5961== by 0x62996F: GAGCore::Toolkit::initGraphic(int, int, unsigned) (Toolkit.cpp:51) ==5961== by 0x4E6720: GlobalContainer::load() (GlobalContainer.cpp:432) ==5961== Address 0x7184063 is 19 bytes inside a block of size 16,384 alloc'd ==5961== at 0x4A1FFC6: calloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so) ==5961== by 0x5F1EA54: XOpenDisplay (in /usr/lib64/libX11.so.6.2.0) ==5961== by 0x50AA261: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x5094C95: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x506A9F7: SDL_InitSubSystem (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x506AA1E: SDL_Init (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x61DBA3: GAGCore::GraphicContext::GraphicContext(int, int, unsigned) (GraphicContext.cpp:1746) ==5961== by 0x62996F: GAGCore::Toolkit::initGraphic(int, int, unsigned) (Toolkit.cpp:51) ==5961== by 0x4E6720: GlobalContainer::load() (GlobalContainer.cpp:432) ==5961== by 0x4E4FE2: Glob2::run(int, char**) (Glob2.cpp:246) ==5961== by 0x4E5A00: main (Glob2.cpp:435) ==5961== ==5961== Invalid read of size 8 ==5961== at 0x55E4FB: Race::loadDefault() (Race.cpp:54) ==5961== by 0x4E68EC: GlobalContainer::load() (GlobalContainer.cpp:462) ==5961== by 0x4E4FE2: Glob2::run(int, char**) (Glob2.cpp:246) ==5961== by 0x4E5A00: main (Glob2.cpp:435) ==5961== Address 0x69DCDA8 is 0 bytes inside a block of size 16 free'd ==5961== at 0x4A209ED: operator delete(void*) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so) ==5961== by 0x628DEB: GAGCore::FileStreamBackend::~FileStreamBackend() (StreamBackend.h:61) ==5961== by 0x64B075: GAGCore::TextInputStream::TextInputStream(GAGCore::StreamBackend*) (TextStream.cpp:470) ==5961== by 0x55E4C7: Race::loadDefault() (Race.cpp:53) ==5961== by 0x4E68EC: GlobalContainer::load() (GlobalContainer.cpp:462) ==5961== by 0x4E4FE2: Glob2::run(int, char**) (Glob2.cpp:246) ==5961== by 0x4E5A00: main (Glob2.cpp:435) ==5961== ==5961== Invalid write of size 8 ==5961== at 0x628981: GAGCore::StreamBackend::~StreamBackend() (StreamBackend.h:37) ==5961== by 0x55E50A: Race::loadDefault() (Race.cpp:54) ==5961== by 0x4E68EC: GlobalContainer::load() (GlobalContainer.cpp:462) ==5961== by 0x4E4FE2: Glob2::run(int, char**) (Glob2.cpp:246) ==5961== by 0x4E5A00: main (Glob2.cpp:435) ==5961== Address 0x69DCDA8 is 0 bytes inside a block of size 16 free'd ==5961== at 0x4A209ED: operator delete(void*) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so) ==5961== by 0x628DEB: GAGCore::FileStreamBackend::~FileStreamBackend() (StreamBackend.h:61) ==5961== by 0x64B075: GAGCore::TextInputStream::TextInputStream(GAGCore::StreamBackend*) (TextStream.cpp:470) ==5961== by 0x55E4C7: Race::loadDefault() (Race.cpp:53) ==5961== by 0x4E68EC: GlobalContainer::load() (GlobalContainer.cpp:462) ==5961== by 0x4E4FE2: Glob2::run(int, char**) (Glob2.cpp:246) ==5961== by 0x4E5A00: main (Glob2.cpp:435) ==5961== ==5961== Invalid free() / delete / delete[] ==5961== at 0x4A209ED: operator delete(void*) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so) ==5961== by 0x628995: GAGCore::StreamBackend::~StreamBackend() (StreamBackend.h:37) ==5961== by 0x55E50A: Race::loadDefault() (Race.cpp:54) ==5961== by 0x4E68EC: GlobalContainer::load() (GlobalContainer.cpp:462) ==5961== by 0x4E4FE2: Glob2::run(int, char**) (Glob2.cpp:246) ==5961== by 0x4E5A00: main (Glob2.cpp:435) ==5961== Address 0x69DCDA8 is 0 bytes inside a block of size 16 free'd ==5961== at 0x4A209ED: operator delete(void*) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so) ==5961== by 0x628DEB: GAGCore::FileStreamBackend::~FileStreamBackend() (StreamBackend.h:61) ==5961== by 0x64B075: GAGCore::TextInputStream::TextInputStream(GAGCore::StreamBackend*) (TextStream.cpp:470) ==5961== by 0x55E4C7: Race::loadDefault() (Race.cpp:53) ==5961== by 0x4E68EC: GlobalContainer::load() (GlobalContainer.cpp:462) ==5961== by 0x4E4FE2: Glob2::run(int, char**) (Glob2.cpp:246) ==5961== by 0x4E5A00: main (Glob2.cpp:435) ==5961== ==5961== ERROR SUMMARY: 8094 errors from 12 contexts (suppressed: 0 from 0) ==5961== malloc/free: in use at exit: 37,065 bytes in 400 blocks. ==5961== malloc/free: 179,612 allocs, 179,213 frees, 124,513,630 bytes allocated. ==5961== For counts of detected errors, rerun with: -v ==5961== searching for pointers to 400 not-freed blocks. ==5961== checked 769,896 bytes. ==5961== ==5961== ==5961== 12 bytes in 2 blocks are definitely lost in loss record 5 of 40 ==5961== at 0x4A2214E: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so) ==5961== by 0x5F65A1A: (within /usr/lib64/libX11.so.6.2.0) ==5961== by 0x5F66025: _XimSetICValueData (in /usr/lib64/libX11.so.6.2.0) ==5961== by 0x5F5B437: _XimLocalCreateIC (in /usr/lib64/libX11.so.6.2.0) ==5961== by 0x5F4430C: XCreateIC (in /usr/lib64/libX11.so.6.2.0) ==5961== by 0x50A9733: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x50AA463: (within /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x5094C95: SDL_VideoInit (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x506A9F7: SDL_InitSubSystem (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x506AA1E: SDL_Init (in /usr/lib64/libSDL-1.2.so.0.11.0) ==5961== by 0x61DBA3: GAGCore::GraphicContext::GraphicContext(int, int, unsigned) (GraphicContext.cpp:1746) ==5961== by 0x62996F: GAGCore::Toolkit::initGraphic(int, int, unsigned) (Toolkit.cpp:51) ==5961== ==5961== ==5961== 5,536 bytes in 4 blocks are definitely lost in loss record 39 of 40 ==5961== at 0x4A2214E: malloc (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so) ==5961== by 0x653276F: ft_mem_qalloc (in /usr/lib64/libfreetype.so.6.3.8) ==5961== by 0x6536272: ft_mem_alloc (in /usr/lib64/libfreetype.so.6.3.8) ==5961== by 0x6536A7A: ft_mem_qrealloc (in /usr/lib64/libfreetype.so.6.3.8) ==5961== by 0x6536B5A: ft_mem_realloc (in /usr/lib64/libfreetype.so.6.3.8) ==5961== by 0x658134E: (within /usr/lib64/libfreetype.so.6.3.8) ==5961== by 0x6584587: (within /usr/lib64/libfreetype.so.6.3.8) ==5961== by 0x65366CA: FT_New_Size (in /usr/lib64/libfreetype.so.6.3.8) ==5961== by 0x6538DF3: FT_Open_Face (in /usr/lib64/libfreetype.so.6.3.8) ==5961== by 0x551252C: TTF_OpenFontIndexRW (in /usr/lib64/libSDL_ttf-2.0.so.0.6.2) ==5961== by 0x64FD09: GAGCore::TrueTypeFont::load(char const*, unsigned) (TrueTypeFont.cpp:80) ==5961== by 0x6293DA: GAGCore::Toolkit::loadFont(char const*, unsigned, char const*) (Toolkit.cpp:123) ==5961== ==5961== LEAK SUMMARY: ==5961== definitely lost: 5,548 bytes in 6 blocks. ==5961== possibly lost: 0 bytes in 0 blocks. ==5961== still reachable: 31,517 bytes in 394 blocks. ==5961== suppressed: 0 bytes in 0 blocks. ==5961== Reachable blocks (those to which a pointer was found) are not shown. ==5961== To see them, rerun with: --show-reachable=yes
-- Kai Antweiler
_______________________________________________ glob2-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/glob2-devel
