valgrind安裝與使用 QTcreator下用valgrind進(jìn)行內(nèi)存檢測(cè)時(shí)報(bào)錯(cuò)?
QTcreator下用valgrind進(jìn)行內(nèi)存檢測(cè)時(shí)報(bào)錯(cuò)?Valgrind MemCheck工具的用法如下:Valgrind--tool=MemCheck。/從上面的命令中,我們可以清楚地看到主命令是
QTcreator下用valgrind進(jìn)行內(nèi)存檢測(cè)時(shí)報(bào)錯(cuò)?
Valgrind MemCheck工具的用法如下:Valgrind--tool=MemCheck。/從上面的命令中,我們可以清楚地看到主命令是Valgrind,我們想要使用的工具是由“-tool”選項(xiàng)指定的。上面的“a.out”指的是我們想要用MemCheck運(yùn)行的可執(zhí)行文件。此工具可以檢測(cè)以下與內(nèi)存相關(guān)的問(wèn)題:未釋放內(nèi)存的使用、釋放內(nèi)存的讀/寫(xiě)、分配內(nèi)存塊末尾的讀/寫(xiě)內(nèi)存泄漏、使用malloc/new/new[]和free/delete/delete[]重復(fù)釋放內(nèi)存注:以上列表不是很全面,但是它包含許多可以被工具檢測(cè)到的常見(jiàn)問(wèn)題。讓我們逐一討論上面的場(chǎng)景:注意:下面討論的所有測(cè)試代碼都應(yīng)該使用GCC和-G選項(xiàng)編譯(用于在MemCheck的輸出中生成行號(hào))。正如我們?cè)趯程序編譯成可執(zhí)行文件之前所討論的,它需要經(jīng)歷四個(gè)不同的階段
在Valgrind中,我們對(duì)所有的“錯(cuò)誤”并不感興趣,例如許多庫(kù)中的“錯(cuò)誤”,因此我們需要使用抑制方法來(lái)將我們不感興趣的錯(cuò)誤排除在外。系統(tǒng)具有默認(rèn)的抑制文件“$prefix/lib/Valgrind/默認(rèn).supp您也可以自己編寫(xiě)suppressionfile。當(dāng)使用選項(xiàng)-V時(shí),所有使用的抑制都將顯示在報(bào)告中,即--6435--usedusu批準(zhǔn):15dl-3-cond-1。參考資料:http://valgrind.org/docs/manual/manual core.html#manual- 核心抑制