注意:

The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.

Difference between revisions of "Package:Valgrind"

From Funtoo
Jump to navigation Jump to search
(Added information as to how to get Valgrind working on Funtoo.)
 
Line 2: Line 2:
|Summary=An Open Source memory debugger for GNU/Linux.
|Summary=An Open Source memory debugger for GNU/Linux.
|CatPkg=dev-util/valgrind
|CatPkg=dev-util/valgrind
|Maintainer=
|Homepage=http://www.valgrind.org
|Homepage=http://www.valgrind.org
}}
}}
{{PageNeedsUpdates}}
== Troubleshooting ==
=== Fatal error at startup ===
If you receive the following error message when you try to run Valgrind:
{{console|body=
==23489== Memcheck, a memory error detector
==23489== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==23489== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==23489== Command: <some command name goes here>
==23489==


{{PageNeedsUpdates}}
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.
}}
it is because {{Package|sys-libs/glibc}} was built without the {{f|debug}} USE flag. To enable this USE flag, you can do the following:
{{console|body=
###i## mkdir /etc/portage/package.use (if it doesn't exist on your system)
###i## touch /etc/portage/package.use/glibc
###i## echo "sys-libs/glibc debug" > /etc/portage/package.use/glibc
###i## echo 'FEATURES="splitdebug"' >> /etc/portage/make.conf
}}
After making the required changes, simply re-emerge {{f|glibc}} with the following command:
{{console|body=
###i## emerge --ask glibc
}}
You should receive an output similar to the following:
{{console|body=
Calculating dependencies... done!
[ebuild  R    ] sys-libs/glibc-2.20-r1  USE="debug*"
}}
After re-emering {{f|glibc}}, Valgrind should function properly.
{{EbuildFooter}}
{{EbuildFooter}}

Latest revision as of 18:09, June 12, 2015

Valgrind

   Tip

We welcome improvements to this page. To edit this page, Create a Funtoo account. Then log in and then click here to edit this page. See our editing guidelines to becoming a wiki-editing pro.


Troubleshooting

Fatal error at startup

If you receive the following error message when you try to run Valgrind:

==23489== Memcheck, a memory error detector
==23489== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==23489== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==23489== Command: <some command name goes here>
==23489== 

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.

it is because No results was built without the debug USE flag. To enable this USE flag, you can do the following:

root # mkdir /etc/portage/package.use (if it doesn't exist on your system)
root # touch /etc/portage/package.use/glibc
root # echo "sys-libs/glibc debug" > /etc/portage/package.use/glibc
root # echo 'FEATURES="splitdebug"' >> /etc/portage/make.conf

After making the required changes, simply re-emerge glibc with the following command:

root # emerge --ask glibc

You should receive an output similar to the following:

Calculating dependencies... done!
[ebuild   R    ] sys-libs/glibc-2.20-r1  USE="debug*"

After re-emering glibc, Valgrind should function properly.