|
From: Miguel G. <mig...@gm...> - 2013-11-15 17:40:16
|
Hello List, I'm seeing lots of reports similar to the ones attached below when I run valgrind on my project. The code seems to be sound because when I don't dlopen a shared library, no reports are output. Also, I'm unsure if it is relevant but my project uses boost. What, in your opinion, is causing valgrind to report the (non-)issues below? And, if it is indeed valgrind at fault here, are there any special measures I can take so as to ensure valgrind runs correctly? ================= ==20245== Invalid read of size 4 ==20245== at 0x58E064D: ??? (in /usr/lib/x86_64-linux-gnu/libstdc+ +.so.6.0.18) ==20245== by 0x593F05E: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (in /usr/ lib/x86_64-linux-gnu/libstdc++.so.6.0.18) ==20245== by 0x5DDB070: __run_exit_handlers (exit.c:77) ==20245== by 0x5DDB0F4: exit (exit.c:99) ==20245== by 0x5DC0DEB: (below main) (libc-start.c:294) ==20245== Address 0x6688980 is 16 bytes inside a block of size 39 free'd ==20245== at 0x4C2BADC: operator delete(void*) (in /usr/lib/valgrind/ vgpreload_memcheck-amd64-linux.so) ==20245== by 0x593F05E: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (in /usr/ lib/x86_64-linux-gnu/libstdc++.so.6.0.18) ==20245== by 0x5DDB479: __cxa_finalize (cxa_finalize.c:55) ==20245== by 0x7467BF2: ??? ==20245== by 0x4014BCE: _dl_close_worker (dl-close.c:266) ==20245== by 0x401569D: _dl_close (dl-close.c:776) ==20245== by 0x400F6E5: _dl_catch_error (dl-error.c:177) ==20245== by 0x568263B: _dlerror_run (dlerror.c:163) ==20245== by 0x568210E: dlclose (dlclose.c:47) ==20245== by 0x50A22E: omnis::transform::Collection::~Collection() (transform_collection.cxx:47) ==20245== by 0x4EDAE8: OmnisApp::run(int, char**) (omnis_app.cxx:107) ==20245== by 0x4EE25D: main (main.cxx:16) ==20245== ==20245== Invalid free() / delete / delete[] / realloc() ==20245== at 0x4C2BADC: operator delete(void*) (in /usr/lib/valgrind/ vgpreload_memcheck-amd64-linux.so) ==20245== by 0x593F05E: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (in /usr/ lib/x86_64-linux-gnu/libstdc++.so.6.0.18) ==20245== by 0x5DDB070: __run_exit_handlers (exit.c:77) ==20245== by 0x5DDB0F4: exit (exit.c:99) ==20245== by 0x5DC0DEB: (below main) (libc-start.c:294) ==20245== Address 0x6688970 is 0 bytes inside a block of size 39 free'd ==20245== at 0x4C2BADC: operator delete(void*) (in /usr/lib/valgrind/ vgpreload_memcheck-amd64-linux.so) ==20245== by 0x593F05E: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (in /usr/ lib/x86_64-linux-gnu/libstdc++.so.6.0.18) ==20245== by 0x5DDB479: __cxa_finalize (cxa_finalize.c:55) ==20245== by 0x7467BF2: ??? ==20245== by 0x4014BCE: _dl_close_worker (dl-close.c:266) ==20245== by 0x401569D: _dl_close (dl-close.c:776) ==20245== by 0x400F6E5: _dl_catch_error (dl-error.c:177) ==20245== by 0x568263B: _dlerror_run (dlerror.c:163) ==20245== by 0x568210E: dlclose (dlclose.c:47) ==20245== by 0x50A22E: omnis::transform::Collection::~Collection() (transform_collection.cxx:47) ==20245== by 0x4EDAE8: OmnisApp::run(int, char**) (omnis_app.cxx:107) ==20245== by 0x4EE25D: main (main.cxx:16) |