} } }

    Eclipse CDT Linux下内存解析 补记

    添加时间:2013-8-1 点击量:

    常用对象汇总


    http://www.ibm.com/developerworks/cn/linux/l-cn-memleak/


    常用的内存解析对象


    http://en.wikipedia.org/wiki/Category:Memory_management_software



    PurifyPlus


    http://www-03.ibm.com/software/products/us/en/ratpurlinux


    http://en.wikipedia.org/wiki/IBM_Rational_Purify


    不支撑常用的Linux 64体系[Ubuntu redhat],悲剧



    Valgrind简介
    Memcheck

    Memcheck 对象首要搜检下面的法度错误:
    应用未初始化的内存(Use of uninitialised memory)
    应用已经开释了的内存(Reading/writing memory after it has been freed)
    应用跨越malloc分派的内存空间(Reading/writing off the end of mallocd blocks)
    对客栈的不法接见(Reading/writing inappropriate areas on the stack)
    申请的空间是否有开释(Memory leaks – where pointers to mallocd blocks are lost forever)
    malloc/free/new/申请和开释内存的匹配(Mismatched use of malloc/new/new [] vs free// [])
    src和dst的重叠(Overlapping src and dst pointers in memcpy() and related functions)
    Callgrind

    Callgrind收集法度运行时的一些数据,函数调用关系等信息,还可以有选择地进行cache 模仿。在运行停止时,它会把解析数据写入一个文件。callgrind_annotate可以把这个文件的内容转化成可读的情势
    Cachegrind

    它模仿CPU中的一级缓存I1,D1和L2二级缓存,可以或许正确地指出法度中cache的丧失和射中。若是须要,它还可以或许为我们供给cache丧失次数,内存引用次数,以及每行代码,每个函数,每个模块,全部法度产生的指令数。这对优化法度有很大的帮助
    Helgrind

    它首要用来搜检多线程法度中呈现的竞争题目。Helgrind 寻找内存中被多个线程接见,而又没有一贯加锁的区域,这些区域往往是线程之间落空同步的处所,并且会导致难以发掘的错误。Helgrind实现了名为 Eraser 的竞争检测算法,并做了进一步改进,削减了呈报错误的次数
    Massif

    客栈解析器,它能测量法度在客栈中应用了几许内存,告诉我们堆块,堆经管块和栈的大小。Massif能帮助我们削减内存的应用,在带有虚拟内存的现代体系中,它还可以或许加快我们法度的运行,削减法度逗留在互换区中的几率

    容易发怒的意思就是: 别人做了蠢事, 然后我们代替他们, 表现出笨蛋的样子。—— 蔡康永
    分享到: