Visual C 記憶體洩露檢測工具(VLD)

2021-08-03 16:43:11 字數 1309 閱讀 6673

c/c++ 程式越複雜,記憶體的管理顯得越重要,稍有不慎就會出現洩漏。如果記憶體洩漏不是很嚴重,在短時間內對程式不會有太大影響,這也使得記憶體洩漏問題有很強的隱蔽性,不易被發現。然而不管記憶體洩漏多麼輕微,當程式長時間執行時,其破壞力是驚人的 - 從效能下降到記憶體耗盡,甚至會影響其他程式的正常執行。

更多參考

vld(visual leak detector)是一款用於 visual c++ 的免費記憶體洩露檢測工具。相比較其它記憶體洩露檢測工具,它在檢測到記憶體洩漏的同時,還具有如下特點:

可見,vld 簡單易用。只需要做很小的改動(新增庫幷包含標頭檔案),然後正常執行自己的程式,就可以發現記憶體問題;如果深入原始碼,可以學習到堆記憶體分配與釋放的原理、記憶體洩漏檢測的原理及記憶體操作的常用技巧等。

vld 主頁:

安裝後的資料夾中主要包括:

新建乙個 win32 控制台應用程式,新增如下**:

#include "stdafx.h"

#include "vld.h"

int _tmain(int argc, _tchar* argv)

配置專案:

在 debug 模式下執行,將會輸出如下資訊:

報告列出了記憶體洩露是在第幾塊、所在的位址、洩露的位元組、呼叫的堆疊、記憶體內容。雙擊呼叫堆疊可以跳轉到所在行。

# 只有在 win32 下才可使用

win32 /include

libs += -l$$/lib/win32 -lvld}}

main.cpp 檔案如下所示:

// 新增 vld 標頭檔案

#ifdef vld_module

#include "vld.h"

#endif

int main(int argc, char *argv)

編譯執行,在 qt creator 的應用程式輸出視窗中將會出現和 visual studio 中類似的記憶體洩露資訊。

使用 vld 檢測記憶體洩露很容易,但在使用過程中,需要注意以下幾點:

需要在 debug 模式下使用。如果是 release 模式,則不會鏈結 vld。

只能使用 vc++ 編譯器。這也是美中不足的一點,如果使用 qt,只能先使用 vc++ 編譯器捕捉並解決記憶體洩露,再考慮使用 mingw(gcc/g++)編譯程式。

記憶體洩露檢測工具 valgrind

valgrind 安裝 2.解壓安裝包 tar jxvf valgrind 3.2.3.tar.bz2 3.解壓後生成目錄valgrind 3.2.3 4.cd valgrind 3.2.3 5.執行.autogen.sh設定環境 需要標準的autoconf工具 可選 6.configure 配置v...

Linux C記憶體洩露檢測工具

在linux下些c語言程式,最大的問題就是沒有乙個好的程式設計ide,當然想kdevelop等工具都相當的強大,但我還是習慣使用kdevelop工具,由於沒有乙個習慣的程式設計ide,記憶體檢測也就成了在linux下編寫程式的乙個大問題。是不是說沒有一種記憶體檢查工具能夠在linux使用呢,也不是,...

valgrind記憶體洩露檢測工具

一 安裝 valgrind linux環境首先進入root使用者 然後執行下面的命令 tar jxvf valgrind 3.12.0.tar.bz2 cd valgrind 3.12.0 configure make make install valgrind version 檢視valgrind...