我正在使用Ubuntu 12.04,Python 2.7.3。
我在C
共同编写的扩展程序中存在细分错误。它似乎来自未正确释放的指针。
然后valgrind
,我用它来查找内存泄漏。根据该答案,我必须Python
在调试模式下进行编译以获取的valgrind
友好版本Python
并摆脱其无关的报告。
如何Python
在调试模式下编译?
即使我链接的答案回答了该问题的一部分,也无法为我提供足够的详细信息。
确实,我想了解正在发生的事情,而不仅仅是在某些地方键入内容,因为“谁知道?它可以工作”。
因此,我想知道:
./configure
?我还试图找到Yair Daon评论中提到的问题的答案:
Python
使用调试编译完成后,是否需要重新编译?
Python
回其标准模式?以下是任何在Ubuntu上尝试以调试模式编译Python的人的输入:
使用解压缩此文件,tar -xf
然后转到新目录。
例:
tar -xf Python2.7.3.tgz cd Python-2.7.3
使用来将python安装程序配置为调试模式./configure --with-pydebug
。它将创建一个Makefile
您只需运行。
通过运行Makefile
,使用编译源代码以创建新的python解释器make install
。
创建新的解释器时,系统的Python将保持干净。
如果您使用进行了编译--prefix=/home/username/workspace/project/python/
,则现在可以使用以下新的Python解释器运行脚本:
/home/username/workspace/project/python/bin/python script.py
或者,您也可以在#!/home/username/workspace/project/python/bin/python
脚本的开头添加shebang行,为其赋予执行特权(sudo chmod 764 script.py
),并使用新的Python解释器通过键入来更轻松地运行它./script.py
。
注意:您可能想查看Python的文档以获取更多配置/编译标志(例如--prefix / -j,感谢Chris的链接)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句