valgirnd的簡單使用

2021-08-05 23:39:42 字數 1374 閱讀 7231

memcheck。這是valgrind應用最廣泛的工具,乙個重量級的記憶體檢查器,能夠發現開發中絕大多數記憶體錯誤使用情況,比如:使用未初始化的記憶體,使用已經釋放了的記憶體,記憶體訪問越界等。

callgrind。它主要用來檢查程式中函式呼叫過程中出現的問題。

cachegrind。它主要用來檢查程式中快取使用出現的問題。

helgrind。它主要用來檢查多執行緒程式中出現的競爭問題。

massif。它主要用來檢查程式中堆疊使用中出現的問題。

extension。可以利用core提供的功能,自己編寫特定的記憶體除錯工具。

二、valgrind簡介

valgrind是一套linux下,開放源**(gpl v2)的**除錯工具的集合。valgrind由核心(core)以及基於核心的其他除錯工具組成。核心類似於乙個框架(framework),它模擬了乙個cpu環境,並提供服務給其他工具;而其他工具則類似於外掛程式 (plug-in),利用核心提供的服務完成各種特定的記憶體除錯任務。

三、使用舉例

1、如下**包含的問題:讀寫記憶體塊越界及記憶體洩漏

首先使用 gcc -g -o test test.c編譯該程式

其次做如下檢測:

2、如下**包含的問題:使用了未初始化的變數;將無意義的引數傳遞給函式呼叫;對靜態陣列越界訪問。

其次做如下檢測,valrind不能檢測靜態陣列越界。

3、如下**包含的問題:重複釋放

其次做如下檢測

vcbuild的簡單使用

vcbuild 命令列 更新 2007 年 11 月 vcbuild 工具使用以下命令列語法來生成 visual c 專案和解決方案。複製 vcbuild options project solution config all 標誌 options生成選項。有關更多資訊,請參見 vcbuild 選項...

QList的簡單使用

qlistlist list 1 2 3 4 5 6 7 8 qlist的插入 voidinsert int i,const t value 在qlist其中某個位置插入value,假如沒 宣告i i 預設size 及在最後插入value iteratorinsert iterator before...

QTreeWidget的簡單使用

qtreewidget是一種樹形的部件,它以樹的形式顯示各個項,它的每個項使用qtreewidgetitem來表示。qtreewidgetitem的值的表示都是用qstringlist來表示的。簡單的說明一下 for int i 0 i 3 i for int i 0 i 3 i treewidge...