[心得] Valgrind

看板EE_DSnP作者 (姥姥)時間10年前 (2013/11/12 17:24), 編輯推噓5(500)
留言5則, 5人參與, 最新討論串1/1
寫作業四的時候有用到valgrind,提出來和大家分享一下: valgrind是一個程式,可用來檢查記憶體是否有錯誤的使用情況,例如指標指到不該指的 地方或memory leak,在某些方面比gdb還要好用。 使用前要先安裝,打apt-get install valgrind或yum install valgrind就可以了。 要執行時,valgrind後面接檔名跟參數,例如: valgrind ./memTest -f tests/do1 如果有不合法的存取,會顯示invalid read或invalid write以及類似gdb的backtrace, 就可以知道程式在哪些地方用到有問題的指標。 如果要檢查是否有memory leak,需要加一個參數--leak-check=full,例如: valgrind --leak-check=full ./memTest -f tests/do1 程式結束後會告訴你哪些指標沒有被delete/free,以及那個指標new/malloc的地方。基 本上看definitely lost就好,indirectly lost和possibly lost可以不用理他。 要注意的是,compile的時候g++要加上-g這個參數,否則backtrace可能沒辦法顯示行號 。 拋磚引玉,希望對大家有幫助! -- 白日登山望烽火,黃昏飲馬傍交河。行人刁斗風沙暗,公主琵琶幽怨多。 野雲萬里無城郭,雨雪紛紛連大漠。胡雁哀鳴夜夜飛,胡兒眼淚雙雙落。 聞道玉門猶被遮,應將性命逐輕車。年年戰骨埋荒外,空見蒲桃入漢家。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.248.144

11/12 17:25, , 1F
推推 好用
11/12 17:25, 1F

11/12 21:22, , 2F
推~~
11/12 21:22, 2F

11/13 01:59, , 3F
推!
11/13 01:59, 3F

11/13 13:04, , 4F
推~!
11/13 13:04, 4F

11/22 00:32, , 5F
太晚看到Q_Q 好用推
11/22 00:32, 5F
文章代碼(AID): #1IWVFHvp (EE_DSnP)