圖文解說使用madExcept檢測內存泄漏


madExcept的官網在這里,先去看一下http://www.madshi.net/,這么好的控件竟然是免費的,贊一個!下載回來http://madshi.net/madCollection.exe,開始安裝.

1.運行madCollection,選擇madExcept 5,如下圖,然后點擊Install:

 

2. 出現license界面,選擇Accept license,點Continue

3.輸入yes,點Continue

 

4.選擇安裝目錄,點Install。圖省事,我就用默認的。

 

5.顯示這個界面,安裝完成:

 

接下來,看看如何使用madExcept檢測內存泄漏:

1.新建一個VCL項目,然后在Project菜單中選擇madExcept settings...

 

進入madExcept設置界面:

 

選擇OK,看一下項目源代碼,madExcept為項目增加了代碼,以mad為前綴的幾個單元:

program Project3;

uses
  madExcept,
  madLinkDisAsm,
  madListHardware,
  madListProcesses,
  madListModules,
  Vcl.Forms,
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.

運行,再關閉項目,會出下面的提示,沒有泄漏:

手工造一個泄漏:

procedure TForm2.Button1Click(Sender: TObject);
var
  b:TButton;
begin
  b:=TButton.Create(nil);
end;

建立個按鈕對象,不釋放他,運行,點Button1三次,退出項目:

 

這是顯示的內存泄漏!可以看出TButton對象,泄漏了三次!

上面的操作,沒有寫一行代碼,僅通過為項目設置madExcept,就實現了內存泄漏檢測。

我們還可以用代碼,隨時控制檢測,引用madExcept單元,然后用代碼:

感謝朋友007及黑夜殺手!

有朋友問,是否支持fmx項目,答案是肯定的,支持!

Delphi 10.4.1+madExcept 5.1

 


免責聲明!

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



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