我使用的是Ubuntu 12.04,Python 2.7.3
我在共同编写的C
扩展名中遇到了分段错误。它似乎来自一个没有正确免费的指针。
然后我使用valgrind
来查找内存泄漏。根据{{3}},我必须在调试模式下编译Python
以获得valgrind
友好版Python
并删除其无关的报告。
如何在调试模式下编译Python
?
即使我链接的答案回答了该问题的一部分,但它并没有为我提供足够的细节 事实上,我想了解发生了什么,而不仅仅是在某些地方打字,因为“谁知道?它可以工作”。
因此,我想知道:
./configure
?我也在试图找到Yair Daon评论中提到的问题的答案:
完成使用调试后,是否必须重新编译Python
汇编
Python
编译回标准模式?答案 0 :(得分:2)
以下是任何试图在Ubuntu上以调试模式编译Python的人的一些输入:
使用tar -xf
解开它并转到新目录。
例:
tar -xf Python2.7.3.tgz
cd Python-2.7.3
使用./configure --with-pydebug
为调试模式配置python安装程序。它将创建一个您必须运行的Makefile
。
使用:Makefile
运行make install
,编译源代码以创建新的python解释器。
当您创建新的解释器时,您的系统的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
),并使用新的Python解释器通过键入{{}更轻松地运行它1}}。
注意:您可能需要查看Python的文档以获取更多配置/编译标志 (例如--prefix / -j,感谢Chris的链接)。