日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

delphi内存泄露查找工具之MemProof教程

發布時間:2025/3/20 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 delphi内存泄露查找工具之MemProof教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MemProof教程簡介

???????MemProof(內存清道夫)是AutomatedQA出品的一款非常不錯的檢測內存泄漏和資源泄漏的免費調試工具,適合于WIN32平臺下使用DELPHI/C++?BUILDER開發的應用程序。
正在裝載數據……利用它可以方便的查找出一些忘記釋放的指針以及資源。它通過在調試模式下運行目標程序,監視程序的創建和釋放操作,以達到檢測資源泄漏的效果。監測過程中它會根據資源類型計數,每次創建后增加計數,釋放則遞減計數,最后程序結束根據計數即可判斷出資源的泄漏。

???????MemProof的原作者是Atanas?Stoyanov,后加盟了AutomatedQA公司,他目前是大名鼎鼎的AQTIME軟件的主力開發者。MemProof已經很久沒有更新了,作者在AutomatedQA的官方網站上也推薦大家使用AQTIME( http://www.automatedqa.com/products/aqtime/memproofusers.asp),因為AQTIME包含了MemProof的所有功能,并且擁有很多MemProof所不具備的特性,如:更好的COM支持,結合MSDN獲取幫助,平臺測試等等。雖然有這么多好處,但是AQTIME畢竟是收費的商業軟件,價格不菲,而且體積相對龐大。對于我來說,更愿意選擇MemProof。輕佻的體積,簡單的操作,還是免費的(這條最關鍵~~)。當然,對于大的企業用戶來說,AQTIME也是個非常不錯的選擇。

使用方法
l?????????下載

官方網站上的最新版本為?(Build?0.950?July?19,?2004)

下載地址1: http://www.automatedqa.com/products/memproof/index.asp
下載地址2: http://www.delphifans.com/SoftView/SoftView_1947.html

l?????????安裝

MemProof是一個綠色軟件, 下載完成后解壓,運行MemProof.exe即可。

l?????????準備

MemProof要求目標程序帶有完整的調試信息。打開工程選項(Project-Options)

1、??Compiler面板

l?????????去掉Optimization(代碼優化)選項

l?????????選擇Stack?Frames(為所有過程函數強制生成調用堆棧)選項

l?????????選擇Debug?information?(在DCU文件中生成調試信息)選項

l?????????選擇Use?Debug?DCUS(編譯時鏈接帶有調試信息的VCL?DCU文件)選項



2、??Linker面板

l?????????選擇Detailed(生成完整的MAP文件,包含模塊、單元、過程等地址信息)選項

l?????????選擇Include?TD32?debug?info(將調試信息生成到可執行文件)選項


該選項會導致可執行文件體積增大,但不會影響運行效率以及內存占用,建議在正式發布時不要帶上該選項。




l?????????開始

一切準備就緒,現在可以開始調試了。

下面是用于調試的一段測試程序:

新建一個空白工程,在OnCreate事件中加入以下代碼:

procedure?TForm1.FormCreate(Sender:?TObject);

begin

??TFont.Create;??//創建一個TFONT對象,但不釋放

??CloseHandle(0);??//關閉一個不存在的句柄

end;

再根據上面的介紹設置好工程選項。打開MemProof:



Resources?–資源的類型,包括Error(錯誤)、Pointers(指針)、Memory(內存)、GDI(畫布資源)、User(系統對象)、Kernel(核心對象)、Registry(注冊表)。

Resources?Count?–資源數目,Current#代表當前數目,Peak#代表峰值數目

Resources?Size?–資源大小,Current#代表當前大小,Peak#代表峰值大小

?

選擇File-Open打開要調試的執行文件,再選擇Run-Run開始運行,再正常退出目標程序,如果有資源泄漏MemProof會自動打開Resources?Details面板:




MemProof共列出5個內存泄漏,我們可以看到每個內存泄漏都有詳細的調用棧情況,以及相對應的 源碼位置。

有時它會提示我們找不到對應的源碼,這是應為沒有指定源碼搜索路徑的原因。MemProof有兩個位置可以設置源碼搜索路徑,一個在Configure-?Search?Directories,一個在Projects-Search?Directories。前者是設置全局路徑,后者是設置當前路徑。一般建議在前者中設置DELPHI的VCL以及共用庫代碼的路徑,后者設置工程本身源碼的路徑。MemProof還為用戶提供了快捷搜索VCL源碼路徑的按鈕Get?Default?for,使用這個按鈕可以快捷的獲取DELPHI的Libray?Path(有的用戶安裝了VC覆蓋了默認調試工具選項,所以有可能得到的是VC的Libray?Path,這種情況可以直接到DELPHI的Libray?Path中去拷貝即可)。

??????另外MemProof還可以記錄上次的測試結果方便用戶做比較,以及過濾等功能。

??????如果需要測試動態連接庫,可以選擇Project-Parameters,在Host?Applications中選擇主體程序,如果需要帶命令行,則在Parameters中輸入命令行,然后就可以開始測試了,和DELPHI中調試的方法是一樣的。

???????MemProof不支持Attach?Process的調試方式,這是一個不足的地方。

?

使用其實非常簡單,一看就明白了,下面介紹些調試中的經驗技巧。

技巧
l?????????漸進式測試,從最易發現的錯誤開始解決

一個大型的軟件可能會有很多泄漏或者錯誤,這個時候可以漸進式的來測試,第一次測試可以直接運行后立即退出,檢測在加載的過程中是否存在泄漏,然后逐一更正。再分功能模塊進行測試,比如只針對某個功能進行操作,然后退出檢測該模塊是否存在泄漏,如果存在,更正。最后再進行整體測試。這樣可以避免一些關聯性錯誤導致重復測試,而且可以節省測試時間,可以使測試更有針對性。

l?????????分模塊測試,從單個的模塊開始解決

和上一條原則一樣,為了縮小測試面。在Projects的Moudle?Configers中選擇測試的模塊,開始每次只選擇一個模塊針對性測試,最后再選擇所有模塊測試。

注意:不要選擇一些如:Ole32.dll、kernel32.dll等系統模塊。

?

l?????????錯誤優先,發現錯誤與泄漏并存時,優先解決錯誤

測試過程中,代表錯誤,這些錯誤往往是由于錯誤的使用系統API導致,如:釋放不存在的句柄,訪問權限不夠的資源,傳遞了錯誤的調用參數等。這些錯誤往往會導致代碼沒有按照預計的方式運行,觸發一些內存泄漏。所以,需要優先修正這些位置。

l?????????系統資源優先,發現有GDI、User、Kernel、Registry等存在泄漏時優先解決

系統資源泄漏往往是由于窗體、畫布等資源沒有及時釋放,這些錯誤非常明顯,而且這種錯誤往往會帶有很多的Pointers、Memory泄漏,所以,優先修正

總結

以上是生活随笔為你收集整理的delphi内存泄露查找工具之MemProof教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产激情在线 | 欧美日韩一区二区三区在线观看 | 国产我不卡 | 一区二区三区在线视频免费观看 | 狠狠激情 | 韩国毛片一区二区 | 亚洲国产97在线精品一区 | 在线观看黄色免费视频 | 国产野外作爱视频播放 | 国产一二三 | www.色婷婷 | 午夜影院在线看 | 麻豆精品视频在线 | 久草加勒比 | 秋霞av鲁丝片一区二区 | 日韩视频免费在线观看 | 在线观看污视频网站 | 狠狠操五月天 | 91在线精品入口 | 成人免费在线电影 | 国产性一乱一性一伧一色 | 99综合| 日本中文字幕在线看 | 久久国产视频精品 | 天海翼视频在线观看 | 尤物视频免费观看 | www.激情网 | 天天摸天天舔 | 中文字幕一二区 | 黄色无遮挡| 韩国三级hd中文字幕有哪些 | 欧美色第一页 | 亚洲成人一级片 | 黄视频国产 | 一区二区三区免费看 | 国内精品视频一区二区三区 | 欧美日韩精品一区二区在线观看 | 欧美日韩一二三四区 | 日本黄网站色大片免费观看 | 国产精品成人一区二区三区 | 另类小说色综合 | 国产一区999 | 性爱视频日本 | 亚洲一卡二卡 | 91午夜剧场| 日本在线三级 | 久久久久久中文 | 欧美麻豆 | 日本在线观看一区 | 粉嫩av一区二区三区 | 亚洲永久免费观看 | 欧美日韩国产在线播放 | 亚洲综合专区 | 最近日本中文字幕 | 日本丰满少妇做爰爽爽 | 91网站永久免费看nba视频 | 日本精品一二三 | 欧美两根一起进3p做受视频 | 国产chinasex对白videos麻豆 | 在线观看视频二区 | 久久精品色妇熟妇丰满人妻 | 四虎永久在线观看 | 精品一区免费观看 | 精品人妻午夜一区二区三区四区 | 精品无码一区二区三区的天堂 | 黄页嫩草| av作品在线| 人人射人人插 | 久久精品国产亚洲AV成人雅虎 | 久久久精品人妻无码专区 | 91禁在线看 | 国产 欧美 自拍 | 色综合色综合 | 国产欧美精品区一区二区三区 | www.狠狠爱| 久久久国产一区 | 99久久精品国产一区色 | 欧美一级在线视频 | 国产精品91久久 | 岛国av电影在线观看 | 国产黄色网 | 国产精品亚州 | 一区二区不卡免费视频 | 精品一区二区三区四区五区六区 | 98成人网| 性猛交富婆╳xxx乱大交麻豆 | 污网站在线观看免费 | 国产精品久久免费视频 | 丁香六月欧美 | 黄色网址免费 | 高h乱l高辣h文短篇h | 国产激情对白 | 欧美伦理片网站 | 国产视频一区二区在线 | 中国久久久 | 国产综合视频在线观看 | 精国产品一区二区三区a片 国产精品第一 | 成人在线免费 | 国产精品免费视频一区 |