linux安装valgrind

最近服务器程序出了一个崩溃,确定是内存地址访问越界,但是不能定位在哪里,没办法只好用valgrind来跑一下,以前公司的服务器是上都默认安装了,突然发现云服务器上没有安装这个软件,所以记录一下如何安装。

1、下载最新版本的valgrind:
       http://www.valgrind.org/downloads/valgrind-3.9.0.tar.bz2
解压安装包:tar –jxvf valgrind-3.9.0.tar.bz2,解压后生成目录valgrind-3.9.0。

目前支持的平台,在官网上列表如下:
      {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、安装前配置编译选项,所以配置如下:

# cd valgrind-3.9.0

# ./autogen.sh

# ./configure --prefix=/home/valgrind/bin

3、编译和安装valgrind

# make

# make install

4、到这来已经安装成功了,但还不能直接使用,需要创建一个软连接。

# cd /usr/bin/

# ln -s /home/valgrind/bin/bin/valgrind valgrind

最后我们测试一下吧,如果运行so文件失败,可能需要设置库目录。

# export LD_LIBRARY_PATH=`pwd`

# valgrind ./WorldFrame_d -c 2

然后看看终端的显示,确定是否正确安装。

      ==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...
      begin 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 const*, char const*, bool,       TiXmlEncoding) (tinyxmlparser.cpp:549)
      ==30079==    by 0x50F426F: TiXmlElement::Parse(char const*, TiXmlParsingData*, TiXmlEncoding) (tinyxmlparser.cpp:1094)
      ==30079==    by 0x50F399D: TiXmlDocument::Parse(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 0x4391D0: ServerScheme::LoadScheme(ISchemeEngine*, char const*, unsigned int) (ServerScheme.cpp:11)
      ==30079==    by 0x433E0A: 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::Parse(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 30
      --LongWorkerProc(), long worker thread startup, id=30080    
时间: 2024-08-18 22:01:50

linux安装valgrind的相关文章

linux下valgrind的使用概述

Valgrind简介: Valgrind是动态分析工具的框架.有很多Valgrind工具可以自动的检测许多内存管理和多进程/线程的bugs,在细节上剖析你的程序.你也可以利用Valgrind框架来实现自己的工具. Valgrind通常包括6个工具:一个内存错误侦测工具,两个线程错误侦测工具,cache和分支预测的分析工具,堆的分析工具. Valgrind的使用与CPU OS以及编译器和C库都有关系.目前支持下面的平台: - x86/Linux - AMD64/Linux - PPC32/Linu

linux安装(Ubuntu)——(二)

centos的安装参考: http://www.runoob.com/linux/linux-install.html Linux 安装(Ubuntu) 虚拟机:虚拟机(Virtual Machine),在计算机科学中的体系结构里,是指一种特殊的软件,他可以在计算机平台和终端用户之间建立一种环境,而终端用户则是基于这个软件所建立的环境来操作软件.在计算机科学中,虚拟机是指可以像真实机器一样运行程序的计算机的软件实现. 一.    安装Vmware 虚拟机 第一步:执行VMware-worksta

linux安装 apache2.2 django mod_wsgi

系统是ubuntu12.04 一.安装apache sudo apt-get install apache 启动:sudo apachectl start (开机默认启动的) 重启:sudo apachectl restart 关闭:sudo apachectl stop 安装之后在浏览器中访问127.0.0.1,如果出现"It works!" 这样的网页,说明安装成功啦. 二.安装mod_wsgi: 我在官网上下载的源码:https://code.google.com/p/modws

Linux安装Eclipse及项目部署

安装Eclipse 1. 首先解压Eclipse tar -zxvf eclipse-standard-kepler-SR1-linux-gtk.tar.gz -C user/local/src 2. 重新启动 加载JDK 3. 桌面创建快捷方式 Create Launcher 选择启动文件 切换图标 项目部署 1. 首先打开压缩文件 $ unzip text.zip 2. 然后修改 .sql文件的编码 查看文件编码 file bank.sql 修改文件编码 iconv -f GBK -t UT

搜狗输入法linux安装 以及 12个依赖包下载链接分享

搜狗输入法linux安装版,先安装各种依赖包,大概12个依赖,可能中途还需要其他依赖,可以效仿解决依赖问题.如图这12个文件要是手动点击下载,那也太笨点了,我们要用shell命令批量下载.命令如下:wget -c http://http.kali.org/pool/main/f/fcitx/fcitx-libs_4.2.8.5-2_amd64.debwget -c http://http.kali.org/pool/main/f/fcitx/fcitx-libs-qt_4.2.8.5-2_amd

Linux安装及服务控制

一.  版本 Red Hat 企业版   Red Hat Enterprise Linux (简称RHEL) http://www.redhat.com Fedora社区版 由Red Hat资助的社区维护,定位于个人桌面用户 http://fedoraproject.org CentOS社区版 Community Enterprise Operating System(社区企业操作系统) http://www.centos.org 二.  安装步骤 插入RHEL6安装光盘,引导安装程序 设置主机

Linux安装mysql

——@梁WP 摘要:Linux安装mysql. 一.下载mysql 1.在百度搜索mysql,看到其中有一条结果是带有MySQL Downloads字样的,点击进入mysql的官网. 2.进入mysql官网之后,在下面能见到MySQL Community Edition (GPL),点击下面的链接,就会进入下载列表. 3.在下载列表找到MySQL Community Server,点击下面的链接,会进入产品选择页面. 4.选择对应的操作系统,然后选择合适的版本(.gz格式),截图选了Linux 

移动硬盘linux安装之二

安装好Linux,我给自己列了一系列需要安装的程序如下: synergy(电脑之间共享键鼠的工具) subersion(svn,大家都知道的,有些自带安装) fuse+ntfs-3g(使Linux能够读写ntfs分区) rar for linux 最新版firefox ieee80211+ipw2200(无线驱动) 下面是开发用 jdk+eclipse+tomcat mysql+apache+php+phpmyadmin ice+memcachce 娱乐用 mplayer 移动硬盘linux安装

jira 6.0.7 linux安装

1. 相关下载 1.JDK下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.Mysql驱动下载:http://dev.mysql.com/downloads/connector/j 3.Mysql下载:http://dev.mysql.com/downloads/mysql/#downloads 4.Jira下载:http://www.atlassian.com/software/jira/JIRADo