我正在使用Ubuntu 12.04和Python 2.7.3版本。
我在一个我共同编写的C扩展中遇到了段错误。似乎是由于未正确释放指针引起的。
我随后使用valgrind查找内存泄漏。根据这个答案,我必须以调试模式编译Python,才能得到与valgrind兼容的版本,并摆脱不相关的报告。
如何以调试模式编译Python?
尽管我链接的答案回答了部分问题,但它没有为我提供足够的细节。实际上,我想要理解正在发生的事情,而不仅仅是在某些地方输入一些字符,因为“谁知道呢?它可能会起作用”。
因此,我想知道:
我在一个我共同编写的C扩展中遇到了段错误。似乎是由于未正确释放指针引起的。
我随后使用valgrind查找内存泄漏。根据这个答案,我必须以调试模式编译Python,才能得到与valgrind兼容的版本,并摆脱不相关的报告。
如何以调试模式编译Python?
尽管我链接的答案回答了部分问题,但它没有为我提供足够的细节。实际上,我想要理解正在发生的事情,而不仅仅是在某些地方输入一些字符,因为“谁知道呢?它可能会起作用”。
因此,我想知道:
- 下载什么来编译Python?
- 在哪里输入
./configure
? - 我的当前安装会发生什么?它会影响我的系统吗?因为我已经在很多地方读到,Ubuntu 12.04上的许多进程都是由Python管理的,我不希望弄乱任何东西。
- 在使用调试编译后,您是否必须重新编译Python?
- 如果是,如何将Python编译回其标准模式?
sudo make install
或类似命令(实际上,除了使用apt-get
安装系统库等之外,您根本不需要使用sudo
)。 - Chrissudo make install
命令,请从个人构建目录中运行您的自定义解释器。 - msw