qtcreator VLD內存檢測


簡介

Visual Leak Detector是一款用於Visual C++的免費的內存泄露檢測工具。相比較其它的內存泄露檢測工具,它在檢測到內存泄漏的同時,還具有如下特點:

  • 可以得到內存泄漏點的調用堆棧,如果可以的話,還可以得到其所在文件及行號;
  • 可以得到泄露內存的完整數據;
  • 可以設置內存泄露報告的級別;
  • 它是一個已經打包的lib,使用時無須編譯它的源代碼。而對於使用者自己的代碼,也只需要做很小的改動;
  • 他的源代碼使用GNU許可發布,並有詳盡的文檔及注釋。對於想深入了解堆內存管理的讀者,是一個不錯的選擇。

下載安裝

安裝包下載
默認安裝,注意勾選:

配置

VLD 內存檢測工具,只能檢測使用VC++編譯器(即MSVC類型編譯器, 如果有安裝VS則就有這編譯器),不能用於檢測MinGW編譯器。
三種配置方式:

第一種

復制vld安裝目錄下include文件夾中的文件vld.h和vld_def.h到qt安裝目錄的include文件夾中。
將“vld安裝目錄/lib/Win64"或者“vld安裝目錄/lib/Win32"(注意位數,根據你的Qt庫位數確定)下的vld.lib拷貝到Qt默認的lib目錄,就完成安裝了。

第二種

修改.pro文件,添加如下內容:

win32{
    CONFIG(debug, debug|release) {
    INCLUDEPATH += C:/software/VLD/include
    DEPENDPATH += C:/software/VLD/include
    LIBS += -LC:/software/VLD/lib/Win32 -lvld
    }
}

注意:

  • C:/software/VLD是自己的安裝路徑。
  • 配置完成后,重啟qtcreator或者執行qmake。

第三種

直接在main.cpp 頭部添加:

#pragma comment(lib,"C:/software/VLD/lib/Win32/vld.lib")
#ifdef _DEBUG
#include "C:/software/VLD/include/vld.h"
#endif

測試使用

建一個工程。在main.cpp中添加頭文件。#include<vld.h>或者:

#ifdef _DEBUG
#include "vld.h"
#endif

其他代碼如下:

void test()
{
    char *p = new char[5];
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    test();

    return a.exec();
}

輸出:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM