gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:04:09 26 4
gpt4 key购买 nike

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

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

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

但是,当我在 valgrind 下运行 Guile 时,valgrind 报告内存泄漏。由于我自己的代码,此类内存泄漏掩盖了任何内存泄漏。

问题是我可以做些什么来区分由于我的代码中的错误引起的内存泄漏与 valgrind 报告的由于 Guile 引起的内存泄漏。另一个工具而不是 valgrind?特殊的 valgrind 选项?放弃并依赖手动代码演练?

最佳答案

您有几个选择。一种是为 valgrind 编写一个抑制文件,关闭报告您不在处理的内容。 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

关于python - 如何检查 Guile 扩展模块中的内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/78900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com