|
From: John R. <jr...@bi...> - 2011-03-09 05:07:54
|
> I am trying to use valgrind tool on linux-2.6.31 with arm9 core embedded system. > > Please let me know where did it went wrong with following command and how to fix this issue. The system administrator of your target machine has made it too hard for memcheck to work. The diagnosis is self-explanatory. [The ld-linux.so.3 on the target machine lacks a symbol 'memcpy'. Memcheck *MUST* find memcpy in ld-linux.so.3, else memcheck cannot do its job. Somebody removed the symbol, "stripped" it. Look for the invocation of /usr/bin/strip, "install -s", "objcopy -S -g -x -X --discard-locals", and/or build flags such as -s, -x, -X. If you want memcheck to work, then do *not* remove *any* symbols.] Do what the diagnosis says. [Install debuginfo for glibc, or do not remove any symbols from ld-linux.so.3 when building or installing glibc, or at any other time.] > > > /#valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20 --track-fds=yes ./test / > > ==1893== Memcheck, a memory error detector > ==1893== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. > ==1893== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info > ==1893== Command: ./test > ==1893== > --1893-- WARNING: Serious error when reading debug info > --1893-- When reading debug info from ./test: > --1893-- Ignoring non-Dwarf2/3/4 block in .debug_info > > valgrind: Fatal error at startup: a function redirection > valgrind: which is mandatory for this platform-tool combination > valgrind: cannot be set up. Details of the redirection are: > valgrind: > valgrind: A must-be-redirected function > valgrind: whose name matches the pattern: memcpy > valgrind: in an object with soname matching: ld-linux.so.3 > valgrind: was not found whilst processing > valgrind: symbols from the object with soname: ld-linux.so.3 > valgrind: > valgrind: Possible fixes: (1, short term): install glibc's debuginfo > valgrind: package on this machine. (2, longer term): ask the packagers > valgrind: for your Linux distribution to please in future ship a non- > valgrind: stripped ld.so (or whatever the dynamic linker .so is called) > valgrind: that exports the above-named function using the standard > valgrind: calling conventions for this platform. The package you need > valgrind: to install for fix (1) is called > valgrind: > valgrind: On Debian, Ubuntu: libc6-dbg > valgrind: On SuSE, openSuSE, Fedora, RHEL: glibc-debuginfo > valgrind: > valgrind: Cannot continue -- exiting now. Sorry. -- |