我在 C++ 类上实现了 Python 扩展。我没有用于运行 valgrind 的 C++ 目标。我想使用 valgrind 进行内存检查。
我可以将 valgrind 与 Python 一起使用吗?
是的,您可以使用valgrind
使用Python。您只需要使用Python开发人员提供的valgrind抑制文件,这样您就不会因为Python的自定义内存分配/重新分配函数而得到一堆误报。
valgrind 抑制文件可以在这里找到:http://svn.python.org/projects/python/trunk/Misc/valgrind-python.supp http://svn.python.org/projects/python/trunk/Misc/valgrind-python.supp
重要的:您需要取消注释抑制文件*中 PyObject_Free 和 PyObject_Realloc 行。
推荐的使用语法是:
$ valgrind --tool=memcheck --suppressions=valgrind-python.supp \
python -E -tt ./my_python_script.py
另请参阅 Python SVN 存储库中的自述文件,其中描述了将 Python 与 valgrind 结合使用的不同方法:http://svn.python.org/projects/python/trunk/Misc/README.valgrind http://svn.python.org/projects/python/trunk/Misc/README.valgrind
*- 或者,您可以在禁用 PyMalloc 的情况下重新编译 Python,这样您就可以捕获更多内存泄漏,而如果您只是抑制 PyMalloc,则不会出现这些泄漏。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)