1. 程式人生 > >在windows下使用 Visual Leak Detector for Visual C++ 2008的安裝和配置

在windows下使用 Visual Leak Detector for Visual C++ 2008的安裝和配置

在windows下使用

Visual Leak Detector for Visual C++ 2008的安裝和配置

 

3、安裝配置vld-2.2.3-setup

可以去環境變數裡面檢查一下,如果沒有新增就手動新增下(安裝程式預設自動新增)。


一直點next。

 

接下來就是配置了,需要在VS2008中Tools->Options->Projects andSolutions->VC Directories 中設定VLD的引用檔案路徑和庫檔案路徑。


4、使用:

測試程式:

#include<vld.h> //在包含入口函式的.cpp檔案中包含vld.h就可以。如果這個cpp檔案包含了stdafx.h,則將包含vld.h的語句放在stdafx.h的包含語句之後,否則放在最前面。

#include <stdlib.h>

#include <stdio.h>

void f()

{

    int*p = new int(0x12345678);

    printf("p=%08x,", p);

}

int main()

{

    f();

    return0;

}

如果工程不是用visual studio2008建的,還需要進行如下操作(vs2008在配置時已經添加了引用檔案路徑和庫檔案路徑):

1、  在編譯之前,需要做這樣一步(64位的程式操作類似):拷貝lib檔案 (到工程目錄錄下吧??)


2、  拷貝dll檔案 (到工程目錄錄下吧??)


如果拷貝錯誤的dll(32位的程式拷貝64位的dll)或者沒有拷貝,會出現如下錯誤應用程式正常初始化 0xc015002 失敗

5、結果:

Visual Leak Detector列印資訊:

WARNING: Visual Leak Detector detected memory leaks!

---------- Block 1 at 0x00594F80: 4 bytes ---------- --1號塊0x00594F80地址洩漏了4個位元組

  Call Stack:                                        --下面是呼叫堆疊

   c:\users\administrator\documents\visual studio2008\projects\test_leak\test_leak\test_leak.cpp (7): test_leak.exe!f + 0x7bytes--

表示在test_leak.cpp7行的f()函式

   c:\users\administrator\documents\visual studio2008\projects\test_leak\test_leak\test_leak.cpp (13): test_leak.exe!main–雙擊可以引導至對應程式碼處

   f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (582):test_leak.exe!__tmainCRTStartup + 0x19 bytes

   f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (399): test_leak.exe!mainCRTStartup

    0x74A0336A (File and line numbernot available): kernel32.dll!BaseThreadInitThunk + 0x12 bytes

    0x76FF9F72 (File and line numbernot available): ntdll.dll!RtlInitializeExceptionChain + 0x63 bytes

    0x76FF9F45 (File and line numbernot available): ntdll.dll!RtlInitializeExceptionChain + 0x36 bytes

  Data:                                            --這是洩漏記憶體的內容,0x12345678

    78 56 34 12                                                 xV4..... ........

Visual Leak Detector detected 1 memory leak (40 bytes).

Largest number used: 40 bytes.

Total allocations: 40 bytes.

Visual Leak Detector is now exiting.

The program '[8020] test_leak.exe: Native' has exited with code 0 (0x0).

程式沒有記憶體洩露的列印資訊:

Visual Leak Detector Version 2.2.3 installed.

No memory leaks detected.

VisualLeak Detector is now exiting.

6、結束語:

這是一個很方便易用的工具,安裝後每次使用時,僅僅需要將它標頭檔案包含進來重新build就可以。而且,該工具僅在buildDebug版的時候會連線到你的程式中,如果build Release版,該工具不會對你的程式產生任何效能等方面影響。所以儘可以將其標頭檔案一直包含在你的原始碼中。

這裡順便提一下,vld能夠檢測以下問題:

1可以得到記憶體洩漏點的呼叫堆疊,如果可以的話,還可以得到其所在檔案及行號;
2
可以得到洩露記憶體的完整資料;
3
可以設定記憶體洩露報告的級別;
4
它是一個已經打包的lib,使用時無須編譯它的原始碼。而對於使用者自己的程式碼,也只需要做很小的改動(新增標頭檔案vld.h);
5
他的原始碼使用GNU許可釋出,並有詳盡的文件及註釋。對於想深入瞭解堆記憶體管理的讀者,是一個不錯的選擇。


相關推薦

windows使用 Visual Leak Detector for Visual C++ 2008安裝配置

在windows下使用 Visual Leak Detector for Visual C++ 2008的安裝和配置   3、安裝配置vld-2.2.3-setup: 可以去環境變數裡面檢查一下,如果沒有新增就手動新增下(安裝程式預設自動新增)。 一直點next。   接下

使用Visual Leak Detector for Visual C++ 捕捉記憶體洩露---Visual C++記憶體洩露檢測—VLD工具使用說明

以下經過測試: 使用Visual Leak Detector for Visual C++ 捕捉記憶體洩露 1、下載vlc 2、建立應用並配置 c/c++ -> General -> Additional Include Directories = C:\P

OpenCV(c++)-1 安裝配置OpenCV4.4(Windows+visual studio 2019)

@[TOC](內容概覽) # 安裝OpenCV4 OpenCV是一個基於BSD許可(開源)發行的跨平臺計算機視覺和機器學習軟體庫,可以執行在Linux、Windows、Android和Mac OS作業系統上。 [1] 它輕量級而且高效——由一系列 C 函式和少量 C++ 類構成,同時提供了Python

ThinkPHP學習(一) WindowsNginx+PHP5+ThinkPHP 3 2 1的安裝配置

                工具原料:Nginx153:網盤下載地址:http://pan.baidu.com/s/1qWNgLf2php-5.3.28-nts-Win32-VC9-x86網盤下載地址:http://pan.baidu.com/s/1pdukYThinkPHP_3.2.1網盤下載地址:ht

Win7 64Apache2.4.25+PHP7.1.5的安裝配置以及啟動服務

執行PHP環境,首先安裝apache伺服器,網上類似的教程很多,但對於新手來說不夠詳細,特把安裝過程做一個詳細記錄,一來作為自己的筆記,也希望為需要幫助的朋友一些啟發。 軟體的下載地址在截圖中放出,需要指出的是如果沒有安裝VC14的需要安裝,否則會出錯,其實網頁上也已經

010 Linux 通過yum、apt、dnf方式安裝配置Nginx伺服器

一、安裝 Centos系統 1、安裝Nginx源。 Centos7下:#rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

VS2012Visual Leak Detector(vld)的配置使用

 Windows 7系統下 Visual Leak Detector 的配置和使用 1,概述 Visual Leak Detector(簡稱VLD)是一款用於Visual C++的免費的記憶體洩露檢測工具。他的特點有:可以得到記憶體洩漏點的呼叫堆疊,如果可以的話,還可

WindowsLinux記憶體檢測工具:Valgrind,Visual Leak Detector,CppCheck, Cpplint

1 Linux記憶體洩漏檢測工具ValgrindValgrind簡介        Valgrind是一套Linux下,開放原始碼(GPL V2)的模擬除錯工具的集合。Valgrind由核心(core)以及基於核心的其他除錯工具組成。核心類似於一個框架(framework),

Visual Leak Detector 2.2.3 Visual C++記憶體檢測工具

         Visual Leak Detector是一款免費的、健全的、開源的Visual C++記憶體洩露檢測系統。相比Visual C++自帶的記憶體檢測機制,Visual Leak De

Visual Leak Detector 2 2 3 Visual C++內存檢測工具

style 段子 內存泄露 led 庫文件 tex lan center 2.3 Visual Leak Detector是一款免費的、健全的、開源的Visual C++內存泄露檢測系統。相比Visual C++自帶的內存檢測機制,Visual Lea

記憶體洩露除錯之 visual leak detector 工具

內​存​洩​露​調​試​之​ ​v​i​s​u​a​l​ ​l​e​a​k​ ​d​e​t​e​c​t​o​r​ ​工​具【轉】 本文參考此文:http://kangzj.net/visual-leak-detector-download/   另外一種檢查記憶體洩露的工具:

WindowsOpenCV 3.4.0 + Visual Studio 2015開發環境的配置

OpenCV3.1.0+VS2015開發環境配置   摘要:         由於最近AR(增強現實)這個概念非常火爆,各種基於AR的應用及遊戲逐漸面向大眾,而在AR中最重要的兩個技術就是跟蹤識別和增強渲

Chapter2 Visual Studio-Note for BEGINNING C# 7 Programming with Visual Stud

visual studio 重新設定開發環境 工具->獲取工具和功能(T)… 獲取工具和功能(語言包中包括中文簡體、英文等) reset the settings to Visual C#,Visual C++,Web development…

Visual Studio 2017使用Visual Leak Detector(vld)不顯示行號的設定

在安裝vld的時候,其中一步顯示只支援到vs 2015,很可惜作者沒有更新了 但是在vs 2017使用vld的時候,不會顯示行號,麻煩了,打到記憶體洩露卻不知道行號 原來是可以通過設定顯示的,方法如下: 專案屬性->連結器->所有選項->生成除錯資訊:

vs2008 使用Visual Leak Detector檢測記憶體洩漏

http://hi.baidu.com/maydaygmail/item/8ea6ebef87ca9103560f1dfe 靈活自由是C/C++語言的一大特色,而這也為C/C++程 序員出了一個難題。當程式越來越複雜時,記憶體的管理也會變得越加複雜,稍有不慎就會

vc6.0記憶體洩露之檢測工具Visual Leak Detector

如果僅僅是使用的話,無需看下面文章,只需做以下三步,當然先下載visual leak detector包,解壓後: (1)把vld.h vldapi.h拷貝到vc安裝目錄下的include資料夾下 (2)把lib檔案拷貝到vc安裝目錄下的lib資料夾下 (3)需要測試的

vld(Visual Leak Detector) 處理機制與使用詳解

   靈活自由是C/C++語言的一大特色,而這也為C/C++程式設計師出了一個難題。當程式越來越複雜時,記憶體的管理也會變得越加複雜,稍有不慎就會出現記憶體問題。記憶體洩漏是最常見的記憶體問題之一。記憶體洩漏如果不是很嚴重,在短時間內對程式不會有太大的影響,這也使得記憶體洩漏問題有很強的隱蔽性,不容易被發現

實操VS2015配置記憶體洩漏檢查工具Visual Leak Detector

Visual Leak Detector Version 2.5.1 installed.     Outputting the report to the debugger and to C:\Users\bm00076\Documents\Visual Studio 2015\Projects\Conso

VS2017 編譯 Visual Leak Detector + VLD 使用示例

起因 一個Qt5+VS2017的工程,需要進行串列埠操作,在自動時發現一段時間軟體崩潰了,沒有儲存log,在 debug 的時候發現每執行一次應用佔據的記憶體就多一點,後來意識到是記憶體洩漏了。這個真是頭疼,變數太多,不知道從哪裡查詢記憶體洩漏好。於是迫切的需要找到一種追查記憶體洩漏的工具。 一開始很自然的是

windows編譯tensorflow原始碼 用其c++介面呼叫訓練好的模型

最近在研究如何用tensorflow的python庫訓練模型,生成pb檔案,再在c++中呼叫這個模型,完成前向的預測;所以就要使用其c++介面,這需要從原始碼編譯tensorflow。 根據官網給出的編譯器對應關係(詳見我的另一篇部落格),最新版(1.12版)的tensor