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