• Eclipse CDT Linux下内存分析 实战历险


    C++产品开发,上线集成时,都需要内存泄露、覆盖率等检测,这些在Windows下都有很好的工具,如

    Visual Studio: 这个内置了很多的工具

    Devpartner: VC6时BoundChecker非常棒,Devpartner集成了很多的功能集合 http://www.borland.com/products/devpartner/default.aspx

    Insure++: http://www.parasoft.com/jsp/products/insure.jsp?itemId=63

    而在Linux环境下,选择少了很多,下面把eclipse中的工具使用说明一下,好费劲。

    环境

    Ubuntu 10 64位

    Eclipse Juno

    具体步骤

    1、Eclipse CDT【http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/keplerr】安装好后,linux tools 【http://www.eclipse.org/linuxtools/index.php】 内置集成了很多的工具

    不过启动后一用,报错

    java.lang.NullPointerException
            at org.eclipse.linuxtools.internal.valgrind.core.ValgrindCommand.readIntoBuffer(ValgrindCommand.java:82)

    google一下,这个问题还出现过,但没有解答,不知道如何解决

    2、既然如此,直接使用吧, 进入 http://valgrind.org/ 下载安装

    按照docs目录下的文档,测试一个程序后,出现,错误提示

    valgrind:  
    valgrind:    On Debian, Ubuntu:                 libc6-dbg
    valgrind:    On SuSE, openSuSE, Fedora, RHEL:   glibc-debuginfo

     http://askubuntu.com/questions/148236/valgrind-does-debug-error  中给出了方法

    执行sudo apt-get install libc6-dbg, 提示 E: 无法安装的软件包 错误
    咋办,找到如下的快捷解决方法
    sudo apt-get update; sudo aptitude install libc6-dbg
    ubuntu关于aptitude和apt-get http://blog.csdn.net/yili_xie/article/details/4803314
    使用aptitude 解决包冲突的问题,又学了一招

    3、使用:以上全部安装好后,终于可以正常使用了

    valgrind --leak-check=yes ./aa 检查一个测试程序,终于正常了

    此时在进入Eclipse中可以了,具体效果看下图

    image

    此时可以直观的看到泄露和提示

    另外:Eclipse对于C++还提供了其他的一系列工具,辅助代码的分析等,具体如下:覆盖率等等,这些的使用后续仅需看看

    image

    相比Windows下的这些工具,配置和使用起来真是有些麻烦。

  • 相关阅读:
    反射
    定义类
    集合list,set,Map
    API util
    进程与多线程
    泛型
    API string
    JDBC存储过程
    预处理
    JDBC
  • 原文地址:https://www.cnblogs.com/2018/p/3228174.html
Copyright © 2020-2023  润新知