gpt4 book ai didi

python - 我可以使用哪个工具(gdb?xcode?pdb?等)来查找 C 扩展 python 程序中的内存泄漏?

转载 作者:太空宇宙 更新时间:2023-11-04 04:42:42 24 4
gpt4 key购买 nike

我正在编写一个 python 程序,其中包含一个用 C 编写的扩展模块。扩展模块定义了一个在我的程序中不断使用的函数。

我的程序某处有内存泄漏,但我不知道如何找到它。我努力了1) 安装 Valgrind。但是我无法让它工作,因为我有 OSX Mavericks (10.9),而 Valgrind 只支持 OXS 10.7(10.8 有点不稳定)。2) 使用 gdb。我似乎无法让 gdb 运行 python 脚本,因为我需要在从我的 python 代码调用的 c 函数中设置断点。我相信我需要安装 python-debuginfo 才能做到这一点,但我没能做到。3) 使用 pdb。但是,我不知道如何使用 pdb 调试 C 代码。

有没有好的工具可以用来调试我程序中的内存泄漏?

最佳答案

当前 Mac 开发工具附带的调试器现在是 lldb,它取代了 gdb。界面有点类似于gdb。您可以使用 Homebrew 安装 gdb .

调试 C 扩展的方式与任何其他共享库一样。调试加载共享库(您的扩展)的可执行文件 (python),并设置在可执行文件加载共享库后生效的断点。

运行 lldb:

lldb /path/to/python -- your_python_script.py

设置一些断点(替换为你相关的断点)

(lldb) b some_source_file.c:4343

然后运行,调试器会停在断点处

(lldb) r

现在可以正常调试C扩展了。

关于python - 我可以使用哪个工具(gdb?xcode?pdb?等)来查找 C 扩展 python 程序中的内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24376638/

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