Recently I switched from 32bits Debian GNU/Linux to 64bits Debian GNU/Linux.
Suddenly valgrind stops working exactly the same symptom.
(Valgrind worked in 32bits Debian GNU/Linux just fine.)
uname -a
Linux vm-debian-amd64 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1 x86_64 GNU/Linux
I am debugging mozilla thunderbird client.
The binary is linked to dynamic libraries as follows.
I thought initially that the problem was caused by the mixing of
64bits and 32bits libraries (My long term goal was to create 32bits binary and
debug it, so I installed 32bits libraries.)
But right now, 64bits native binary cannot be run under valgrind.
==15417== Memcheck, a memory error detector
==15417== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==15417== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==15417== Command: /REF-OBJ-DIR/objdir-tb3/mozilla/dist/bin/thunderbird-bin -profile /REF-OBJ-DIR/objdir-tb3/mozilla/_tests/mozmill/mozmillprofile -jsbridge 24242 -foreground
==15417==
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: strlen
valgrind: in an object with soname matching: ld-linux-x86-64.so.2
valgrind: was not found whilst processing
valgrind: symbols from the object with soname: ld-linux-x86-64.so.2
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.
I have already installed libc6-dbg installed.
From the posts above, do I have to compile the source again using a different
GCC compile description (the source files of every single program that I want to run under valgrind) ? That is tough :-(
An easy way out will be preferred. Where can I tweak valgrind so that it won't
look for strlen in cases like this (like adding -no-search-strlen as command option)?
Hi,
Recently I switched from 32bits Debian GNU/Linux to 64bits Debian GNU/Linux.
Suddenly valgrind stops working exactly the same symptom.
(Valgrind worked in 32bits Debian GNU/Linux just fine.)
uname -a
Linux vm-debian-amd64 3.2.0-4-amd64 #1 SMP Debian 3.2.46-1 x86_64 GNU/Linux
I am debugging mozilla thunderbird client.
The binary is linked to dynamic libraries as follows.
ishikawa@ vm-debian- amd64:/ REF-OBJ- DIR/objdir- tb3$ ldd mozilla/ dist/bin/ thunderbird- bin f000) 64-linux- gnu/libpthread. so.0 (0x00007f60a644 9000) 64-linux- gnu/libdl. so.2 (0x00007f60a624 5000) x86_64- linux-gnu/ libstdc+ +.so.6 (0x00007f60a5f3 d000) 64-linux- gnu/libm. so.6 (0x00007f60a5c3 e000) 64-linux- gnu/libgcc_ s.so.1 (0x00007f60a5a2 8000) 64-linux- gnu/libc. so.6 (0x00007f60a567 c000) ld-linux- x86-64. so.2 (0x00007f60a668 0000) vm-debian- amd64:/ REF-OBJ- DIR/objdir- tb3$
linux-vdso.so.1 (0x00007fffa73f
libpthread.so.0 => /lib/x86_
libdl.so.2 => /lib/x86_
libstdc++.so.6 => /usr/lib/
libm.so.6 => /lib/x86_
libgcc_s.so.1 => /lib/x86_
libc.so.6 => /lib/x86_
/lib64/
ishikawa@
I thought initially that the problem was caused by the mixing of
64bits and 32bits libraries (My long term goal was to create 32bits binary and
debug it, so I installed 32bits libraries.)
But right now, 64bits native binary cannot be run under valgrind.
==15417== Memcheck, a memory error detector DIR/objdir- tb3/mozilla/ dist/bin/ thunderbird- bin -profile /REF-OBJ- DIR/objdir- tb3/mozilla/ _tests/ mozmill/ mozmillprofile -jsbridge 24242 -foreground
==15417== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==15417== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==15417== Command: /REF-OBJ-
==15417==
valgrind: Fatal error at startup: a function redirection x86-64. so.2 x86-64. so.2
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: strlen
valgrind: in an object with soname matching: ld-linux-
valgrind: was not found whilst processing
valgrind: symbols from the object with soname: ld-linux-
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.
I have already installed libc6-dbg installed.
From the posts above, do I have to compile the source again using a different
GCC compile description (the source files of every single program that I want to run under valgrind) ? That is tough :-(
An easy way out will be preferred. Where can I tweak valgrind so that it won't
look for strlen in cases like this (like adding -no-search-strlen as command option)?
TIA