The recent server program out of a crash, determined that the memory address access out of bounds, but can not locate where, there is no way to use Valgrind to run, before the company's server is installed on the default, suddenly found that the cloud server does not install the software, so record how to install.
1, Download the latest version of Valgrind:
 HTTP://WWW.VALGRIND.ORG/DOWNLOADS/VALGRIND-3.9.0.TAR.BZ2
Unzip the installation package: TAR–JXVF Valgrind-3.9.0.tar.bz2, Generate directory valgrind-3.9.0 after decompression.
Currently supported platforms, on the official web list are as follows:
{x86,amd64,arm,ppc32,ppc64,s390x,mips32,mips64}-linux, Arm-android (2.3 and later), X86-android (4.0 and later) and {x86 , Amd64}-darwin (Mac OS X 10.7, with limited support for 10.
2, Configure the compilation options before installation, so the configuration is as follows:
# CD valgrind-3.9.0
#./autogen.sh
#./configure--prefix=/home/valgrind/bin
3. Compiling and installing Valgrind
# make
# make Install
4, to this has been installed successfully, but can not be used directly, need to create a soft connection.
# cd/usr/bin/
# ln-s/home/valgrind/bin/bin/valgrind Valgrind
Finally, let's test it, if running the so file fails, you may need to set up the library directory.
# export ld_library_path= ' pwd '
# Valgrind./worldframe_d-c 2
then look at the display of the terminal to determine if the installation is correct.
==30079== Memcheck, a memory error detector ==30079== Copyright (C) 2002-2013, and GNU GPL ' d, by Julian Seward et al. ==30079== Using Valgrind-3.9.0 and Libvex; Rerun with-h for copyright info ==30079== Command:./worldframe_d-c 2 ==30079== begin load XML ... b Egin Read file ... filelength = 846 begin Decrypt File ... ptixmldocument::begin parse file ... ==30079== Conditional jump or move depends on uninitialised value (s) ==30079== at 0x50f351f:tixmlbase::stringequal (Char Co nst*, Char const*, BOOL, tixmlencoding) (tinyxmlparser.cpp:549) ==30079== by 0x50f426f:tixmlelement::P Arse ( Char const*, tixmlparsingdata*, tixmlencoding) (tinyxmlparser.cpp:1094) ==30079== by 0x50f399d:tixmldocument::P ar Se (char const*, tixmlparsingdata*, tixmlencoding) (tinyxmlparser.cpp:744) ==30079== by 0x50e8049:cschemeengine::_ _loadxml (char const*, BOOL, tixmldocument*) (schemeengine.cpp:353) ==30079== by 0x50e7e29:cschemeengine::__load (char const*, ccsvreader*, tixmldocument*, bool&) (schemeengine.cpp:277) ==30079== by 0x50e76b1:cschemeengine::loadscheme (char const*, ischemeupdatesink*) (schemeengine.cpp:92) ==30079== by 0x43 91d0:serverscheme::loadscheme (ischemeengine*, char const*, unsigned int) (serverscheme.cpp:11) ==30079== by 0x433 E0a:main (serverapp.cpp:62) ==30079== ==30079== Conditional Jump or move depends on uninitialised value (s) ==30079== at 0x50f2d35:tixmlbase::skipwhitespace (char const*, tixmlencoding) (tinyxmlparser.cpp:315) ==30079== by 0x50f3abb:tixmldocument::P Arse (char const*, tixmlparsingdata*, tixmlencoding) (tinyxmlparser.cpp:770) ==30079= = by 0x50e8049:cschemeengine::__loadxml (char const*, BOOL, tixmldocument*) (schemeengine.cpp:353) ==30079== by 0x50e7e29:cschemeengine::__load (char const*, ccsvreader*, tixmldocument*, bool&) (schemeengine.cpp:277) ==30079 = = by 0x50e76b1:cschEmeengine::loadscheme (char const*, ischemeupdatesink*) (schemeengine.cpp:92) ==30079== by 0x4391d0:serverscheme:: Loadscheme (ischemeengine*, char const*, unsigned int) (serverscheme.cpp:11) ==30079== by 0x433e0a:main (Serverapp . cpp:62) ==30079== Sock.dll, Version--longworkerproc (), long worker thread startup, id=30080
Linux installation Valgrind