我爲Guile開發了一個擴展模塊,用C編寫。這個擴展模塊嵌入了一個Python解釋器。如何檢查Guile擴展模塊中的內存泄漏?
由於此擴展模塊調用Python解釋器,我需要驗證它是否正確管理了Python對象佔用的內存。
我發現Python解釋器乖巧的在自己的內存處理,使運行的valgrind我能找到的內存泄漏是由於我自己的Python解釋器嵌入代碼中的錯誤,如果沒有其他的干擾因素。
但是,當我在valgrind下運行Guile時,valgrind會報告內存泄漏。這種內存泄漏掩蓋了由於我自己的代碼而導致的任何內存泄漏。
問題是我能做些什麼來分離內存泄漏,這是由於我的代碼中的錯誤是由於valgrind報告的內存泄漏而導致的。另一種工具,而不是valgrind?特殊的valgrind選項?放棄並依靠手動代碼演練?