2

I am trying to debug a memory leak using valgrind on CentOS. However, valgrind fails.

When I run this:

my_binary my_arguments

the program runs just fine, except for memory leaks.

When I run this:

valgrind --tool=memcheck --verbose --log-file=valgrind.log --leak-check=full my_binary my_arguments

valgrind exits immediately. Ditto when I run like this:

valgrind my_binary my_arguments

The log files has these lines, among others:

--8594-- Reading syms from /usr/lib64/tls/libnvidia-tls.so.331.67 (0x3276200000)
--8594--    object doesn't have a symbol table
--8594-- Warning: DWARF2 CFI reader: unhandled DW_OP_ opcode 0x2a
valgrind: m_debuginfo/readdwarf.c:2391 (copy_convert_CfiExpr_tree): Assertion 'srcix >= 0 && srcix < VG_(sizeXA)(srcxa)' failed.
==8594==    at 0x3802D247: report_and_quit (m_libcassert.c:210)
==8594==    by 0x3802D480: vgPlain_assert_fail (m_libcassert.c:284)
==8594==    by 0x3809E8AF: copy_convert_CfiExpr_tree (readdwarf.c:2391)
==8594==    by 0x3809EBF5: summarise_context (readdwarf.c:2134)
==8594==    by 0x380A127D: run_CF_instructions (readdwarf.c:3654)
==8594==    by 0x380A2E94: vgModuleLocal_read_callframe_info_dwarf3 (readdwarf.c:4192)
==8594==    by 0x3805B09B: vgModuleLocal_read_elf_debug_info (readelf.c:2181)
==8594==    by 0x38056461: vgPlain_di_notify_mmap (debuginfo.c:835)
==8594==    by 0x38073C19: vgModuleLocal_generic_PRE_sys_mmap (syswrap-generic.c:2071)
==8594==    by 0x38094D79: vgSysWrap_amd64_linux_sys_mmap_before (syswrap-amd64-linux.c:996)
==8594==    by 0x3806A4D7: vgPlain_client_syscall (syswrap-main.c:1492)
==8594==    by 0x38066F9D: handle_syscall (scheduler.c:900)
==8594==    by 0x38067DF9: vgPlain_scheduler (scheduler.c:1096)
==8594==    by 0x380913F4: run_a_thread_NORETURN (syswrap-linux.c:95)

This looks like an error within valgrind. Valgrind version: valgrind-3.6.0. Could you suggest what could have triggered this error? How could I rectify the problem and run valgrind?

Diego
  • 1,789
  • 10
  • 19
Michael
  • 5,775
  • 2
  • 34
  • 53

0 Answers0