热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

检查内存分配-Checkmemoryallocationw/ovalgrind

writingmyownversionofmalloc()(andhisbestfriendMr.free()),IneedtoknowifIfreedmym

writing my own version of malloc() (and his best friend Mr. free()), I need to know if I free'd my memory correctly. Seems that I can't use valgrind because it checks for the libc'malloc, and mine is in a shared library loaded with LD_PRELOAD.

写我自己版本的malloc()(和他最好的朋友free先生())),我需要知道我是否正确地释放了我的内存。看来我不能使用valgrind,因为它检查libc'malloc,而我的则在一个装载了LD_PRELOAD的共享库中。

Currently if I use valgrind it says "0alloc 0free 0leak, everything is good", because it does not detect the allocations I did with MY malloc. (I use (s)brk() functions)

目前,如果我使用valgrind,它会说“0alloc 0free 0泄漏,一切都很好”,因为它没有检测到我用malloc做的分配。(我使用(s)brk()函数)

Does someone know if there's a way to check with valgrind anyways or with sth else ?

有人知道有什么方法可以和凡士林公司或其他公司进行核对吗?

Thanks !

谢谢!

1 个解决方案

#1


1  

Looks like there are two possible solutions:

看来有两种可能的解决方案:

--soname-synonyms

If your custom allocator functions are still called malloc() and free(), use the --soname-synonyms command line parameter to tell Valgrind to look for these functions in your preloaded library. It can then automatically intercept calls to these functions. Example:

如果您的自定义分配器函数仍然被称为malloc()和free(),那么使用- sonami -synonyms命令行参数告诉Valgrind在预加载库中查找这些函数。然后它可以自动拦截对这些函数的调用。例子:

--soname-synOnyms=somalloc=mymalloclib.so

See http://valgrind.org/docs/manual/manual-core.html#manual-core.rareopts for details.

有关详细信息,请参阅http://valgrind.org/docs/manual/manual-core.html manual-core.rareopts。

Client Requests

If you have a more complicated custom allocator (with an API different from malloc()/free()), you can use special "client requests" in your malloc()/free() implementation to tell Valgrind about the structure of your memory pool. See http://valgrind.org/docs/manual/mc-manual.html#mc-manual.mempools for details.

如果您有一个更复杂的自定义分配器(与malloc()/free()不同的API),您可以在您的malloc()/free()实现中使用特殊的“客户端请求”来告诉Valgrind关于内存池的结构。有关详细信息,请参阅http://valgrind.org/docs/manual/mc-manual.html mc-manual.mempools。

I haven't tested either of these solutions :-) so would be nice to hear whether it actually works for you.

我还没有测试这两种方法中的任何一种:-)所以很高兴听到它是否真的适合你。


推荐阅读
  • 本文介绍了Codeforces Round #321 (Div. 2)比赛中的问题Kefa and Dishes,通过状压和spfa算法解决了这个问题。给定一个有向图,求在不超过m步的情况下,能获得的最大权值和。点不能重复走。文章详细介绍了问题的题意、解题思路和代码实现。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Linux磁盘的分区、格式化的观察和操作步骤
    本文介绍了如何观察Linux磁盘的分区状态,使用lsblk命令列出系统上的所有磁盘列表,并解释了列表中各个字段的含义。同时,还介绍了使用parted命令列出磁盘的分区表类型和分区信息的方法。在进行磁盘分区操作时,根据分区表类型选择使用fdisk或gdisk命令,并提供了具体的分区步骤。通过本文,读者可以了解到Linux磁盘分区和格式化的基本知识和操作步骤。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
author-avatar
傻傻的笑没心没肺wy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有