当前位置:  开发笔记 > 编程语言 > 正文

如何检查Guile扩展模块中的内存泄漏?

如何解决《如何检查Guile扩展模块中的内存泄漏?》经验,为你挑选了1个好方法。

我为Guile开发了一个扩展模块,用C语言编写.这个扩展模块嵌入了一个Python解释器.

由于此扩展模块调用Python解释器,我需要验证它是否正确管理Python对象占用的内存.

我发现Python解释器在其自己的内存处理中表现良好,因此通过运行valgrind,如果没有其他干扰因素,我可以发现由于我自己的Python解释器嵌入代码中的错误导致的内存泄漏.

但是,当我在valgrind下运行Guile时,valgrind会报告内存泄漏.由于我自己的代码,这种内存泄漏会掩盖任何内存泄漏.

问题是如何将由于我的代码中的错误导致的内存泄漏与valgrind报告的内存泄漏(由于Guile导致的内容泄漏)分开.另一个工具而不是valgrind?特殊的valgrind选项?放弃并依赖手动代码演练?



1> Allen..:

你有几个选择.一种是为valgrind写一个supressions文件,关闭你没有工作的东西的报告.Python有这样一个文件,例如:http: //svn.python.org/projects/python/trunk/Misc/valgrind-python.supp

如果valgrind不喜欢你的设置,另一种可能性就是使用libmudflap; 使用编译程序gcc -fmudflap -lmudflap,并为指针调试检测生成的代码.在gcc文档中描述,并在这里:http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有