2013-05-07 47 views
0

運行valgrind -v時,我從valgrind獲取兩個抑制的dl-hack3-cond-1錯誤。我在我的代碼中使用calloc,但我已經確保釋放所有內容並將其設置爲NULL。還要確保每個calloc返回都要進行類型轉換。我試圖做一些研究來查看錯誤背後的含義,並發現它與動態鏈接有關,但關於這一點的信息也有限。這是針對一個班級的,導師說我們的valgrind跑步中不能有任何壓制的錯誤。從valgrind -v顯示的dl-hack3-cond-1抑制錯誤-v

我聽說這可能發生在64位系統上運行,這是否有任何事實?謝謝你的幫助。

回答

0

問題出在64位系統上。最後讓Valgrind在我的筆記本電腦上安裝,同樣的事情運行0錯誤。謝謝您的時間和想法。

3

如果你的老師真的說,那麼他們是傻瓜......

valgrind默認的鎮壓是有原因的,因爲在標準系統庫的一些錯誤,你是不是打算無論你在自己的代碼中做什麼,都能擺脫它。

在許多情況下,他們可能是誤報,但在任何情況下,valgrind開發人員已經認定他們不是用戶可以或應該試圖做任何事情的東西,這就是爲什麼他們爲他們提供抑制作爲其一部分默認安裝。

也許你的教練真的意味着你不應該在自己的代碼中有任何壓抑錯誤?這將是一個完全合理的要求。

+0

我不知道有什麼區別?你怎麼知道錯誤是在圖書館還是在我的代碼中? – 2013-05-07 19:25:45

+0

那麼,如果它是一個內置的(那是),那麼它將在系統庫中。這種抑制只會捕獲名稱與'*/lib */ld-2.16 * .so *'匹配的庫中的東西,也就是說在動態鏈接器中這是glibc的一部分。 – TomH 2013-05-07 21:29:57