[英]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.