青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

Umdhtools.exe: 如何使用 umdh.exe 來查找內(nèi)存泄漏

注意:這篇文章是由無人工介入的自動的機器翻譯系統(tǒng)翻譯完成。這些文章是微軟為不懂英語的用戶提供的, 以使他們能夠理解這些文章的內(nèi)容。微軟不保證機器翻譯的正確度,也不對由于內(nèi)容的誤譯或者客戶對它的使用所引起的任何直接的, 或間接的可能的問題負責(zé)。
文章編號 : 268343
最后修改 : 2006年5月30日
修訂 : 7.1

概要

用戶模式轉(zhuǎn)儲堆 (UMDH) 實用程序與操作系統(tǒng)來分析 Windows 堆分配對特定進程。 此工具和其他工具與其, 關(guān)聯(lián)是主要針對 Windows 2000 和 WindowsXP。 單擊 播放 按鈕以查看此流式媒體演示。

<ltThe embedded streaming media event requires Microsoft Windows Media Player to view.>gt

If you have problems viewing this video, click here.

更多信息

使用 UMDH 之前

如果您認為您遇到內(nèi)存泄漏, 應(yīng)注意, 內(nèi)存泄漏可能不它們似乎什么。 您可能發(fā)現(xiàn)內(nèi)存泄漏是不滿足內(nèi)存泄漏, 但是性能增強。 例如, MicrosoftJet 數(shù)據(jù)庫引擎會消耗大量內(nèi)存因為它檢索數(shù)據(jù)并寫入緩存 256 - MB 計算機上 (最多 128 MB)。 緩存允許 Jet 引擎以獲得快速讀和寫提前緩沖。

要確定是否是一個進程遇到內(nèi)存泄漏, 使用 Windows 性能監(jiān)視器 (Perfmon.exe) 并為應(yīng)用程序進程類別下監(jiān)視專用字節(jié)。 專用字節(jié)是總內(nèi)存, 進程已分配, 但不是與其他進程共享。 注意這是不同于 VirtualBytes, 即有趣來監(jiān)視。 虛擬字節(jié)是以字節(jié)表示的虛擬地址空間, 進程使用當(dāng)前大小。 應(yīng)用程序可泄漏虛擬內(nèi)存, 但可能沒有看到分配專用字節(jié)中差別。 如果看不到當(dāng)監(jiān)視專用字節(jié), 但懷疑仍然運行用盡了內(nèi)存, 增加內(nèi)存監(jiān)視虛擬字節(jié)以查看備份虛擬內(nèi)存是否正在使用。 有關(guān)檢測內(nèi)存泄漏, 附加信息請參閱以下 Microsoft Developer Network (MSDN) Web 站點上 " 查找 Leaks 和瓶頸與 WindowsNT PerfMon COM 對象 " 文章:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnperfmo/html/perfmon.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnperfmo/html/perfmon.asp)
要確保應(yīng)用程序, 是泄漏內(nèi)存, 可疑代碼放在循環(huán)與許多迭代, 并然后監(jiān)視對任何提高的內(nèi)存和虛擬專用字節(jié)。 觀看以確保不的專用字節(jié)和虛擬字節(jié)數(shù)不最終保持相同, 并且停止數(shù)增加。 如果沒有內(nèi)存增加, 停止時間點看不到內(nèi)存泄漏但更可能, 到緩存, 增長至其最大尺寸 (例如, 它并不繼續(xù)到 climb 無限)。

如果您決定使用 UMDH 之前,, 您看到內(nèi)存泄漏, 請按照下列步驟:
1.安裝 UMDH 實用程序。
2.設(shè)置要安裝 UMDH 文件夾 PATH 系統(tǒng)環(huán)境變量。
3.將 _ NT _ SYMBOL _ PATH 環(huán)境變量設(shè)置為 Microsoft 符號服務(wù)器路徑以便 UMDH 可以找到調(diào)試符號文件。
UMDH 工具是隨 DebuggingToolsforWindows 產(chǎn)品下面的 Microsoft Web 站點:
http://www.microsoft.com/whdc/devtools/ddk/default.mspx (http://www.microsoft.com/whdc/devtools/ddk/default.mspx)
下載和安裝實用程序, 并將 PATH 系統(tǒng)環(huán)境變量到路徑其中已安裝調(diào)試工具。

使用 UMDH 之前, 必須安裝用于組成應(yīng)用程序和操作系統(tǒng)正確調(diào)試符號。 用于 MicrosoftSymbolServer 獲取調(diào)試符號對于 Microsoft 組件。 有關(guān) MicrosoftSymbolServer, 請單擊文章編號以查看 Microsoft 知識庫中相應(yīng):
311503 (http://support.microsoft.com/kb/311503/EN-US/) 使用 Microsoft 符號服務(wù)器來獲取調(diào)試符號文件
UMDH 嘗試通過使用 _ NT _ SYMBOL _ PATH 環(huán)境變量查找符號文件。 命令以從命令提示符設(shè)置路徑可能與以下類似:
設(shè)置 _ NT _ SYMBOL _ PATH = SRV c:\LocalSymbolCache *
其他有關(guān)設(shè)置符號調(diào)試信息, 請參閱本文中后面 " 調(diào)試符號 " 部分。

在完成這些步驟, 您就可以使用 UMDH 實用程序。

與 UMDH 轉(zhuǎn)儲捕獲堆

UMDH 是實用工具, 轉(zhuǎn)儲堆分配的進程信息。 此信息包括調(diào)用堆棧用于每個分配、 次數(shù), 通過調(diào)用該堆棧, 進行分配和的消耗, 通過調(diào)用該堆棧字節(jié)數(shù)。 例如:
00005320 bytes in 0x14 allocations (@ 0x00000428) by: BackTrace00053
           ntdll!RtlDebugAllocateHeap+0x000000FD
           ntdll!RtlAllocateHeapSlowly+0x0000005A
           ntdll!RtlAllocateHeap+0x00000808
           MyApp!_heap_alloc_base+0x00000069
           MyApp!_heap_alloc_dbg+0x000001A2
           MyApp!_nh_malloc_dbg+0x00000023
           MyApp!_nh_malloc+0x00000016
           MyApp!operator new+0x0000000E
           MyApp!LeakyFunc+0x0000001E
           MyApp!main+0x0000002C
           MyApp!mainCRTStartup+0x000000FC
           KERNEL32!BaseProcessStart+0x0000003D
				
UMDH 輸出顯示, 沒有 21280 (0x5320) 從調(diào)用堆棧分配字節(jié)總數(shù)。 從 20 21280 字節(jié)被分配單獨分配的 1064 字節(jié) (0x428) (0 x 14)。 標識符是 BackTrace00053 提供調(diào)用堆棧。

要生成轉(zhuǎn)儲文件的堆分配, 您必須使用 Gflags.exe 實用程序, 也是隨 DebuggingToolsforWindows 產(chǎn)品, 來讓操作系統(tǒng)知道您想要跟蹤分配內(nèi)核。

假設(shè)您要為 Notepad.exe 轉(zhuǎn)儲 heap(s) 內(nèi)容。 必須首先啟用堆棧跟蹤獲取用于對要測試該應(yīng)用程序。 默認情況下, 不啟用此功能。 要啟用此功能命令是如下:
gflags notepad.exe + ust - i
命令不啟用堆棧跟蹤為進程到已經(jīng)運行, 但使堆棧跟蹤對于所有將來執(zhí)行是 Notepad.exe。 通過 GFLAGS 用戶界面 (不帶任何參數(shù)以獲得用戶界面運行 Gflags.exe) 或者, 您可設(shè)置標志。 使用 - ust 選項對于 gflags 以禁用堆棧跟蹤時, 調(diào)試已完成。

當(dāng)您通過 Gflags.exe, 圖像標志設(shè)并且設(shè)置調(diào)試符號, 您就可以啟動記事本, 使用 UMDH (應(yīng)用)。 啟動程序后, 必須確定進程 ID (PID) 的只啟動記事本進程。 對于此命令是如下:
tlist
您可以找到從輸出 TLIST 應(yīng)用程序的 PID。 PID 信息也可獲得從任務(wù)管理器。 假定對于記事本過程, 您只啟動 PID 是 124。 可使用 UMDH 來獲取堆轉(zhuǎn)儲使用以下命令:
umdh - p 124 個 - f:notepad124.log:
結(jié)果 : Notepad124.log 文件中有完整堆的 Notepad 進程轉(zhuǎn)儲。 此文件顯示所有所做的分配和 callstacks 其中進行分配。

使用 umdh.exe 來比較 UMDH 日志

如果不關(guān)心查找內(nèi)存泄漏, UMDH 日志文件包含對進程, 堆的當(dāng)前狀態(tài)寶貴信息時可能會更重要來比較的兩個日志輸出和了解哪些調(diào)用堆棧已看到大增長兩轉(zhuǎn)儲文件之間。 Umdh.exe 實用程序幫助比較兩 UMDH 日志以提供分析之間差。 一旦有兩個日志捕獲不同間隔, 可再使用以下命令:
UMDH dh1.log dh2.log > cmp12.txt
- 或 -
UMDH -d dh1.log dh2.log > cmp12.txt
- d 命令行選項通知 UMDH 以在十進制代替十六進制顯示。 命令的輸出比較差異的分配之間兩個日志并提供是類似于以下信息:
+ 5320 (f110 - 9df0) = = 5320 3a allocs BackTrace00053 總數(shù)增加
對于每 BackTrace, UMDH 日志文件中沒有兩個日志文件之間進行比較。 本例說明最后一個日志文件 UMDH 命令行中指定有 0xF110 對于相同 BackTrace 調(diào)用 (堆棧) 分配字節(jié)分配 UMDH 命令行中第一個日志具有 0x9DF0 時字節(jié) UMDH 命令行中第一個日志具有 0x9DF0 時分配字節(jié)對于同一 BackTrace (調(diào)用堆棧) 分配字節(jié)。 " 5320 " 是分配的字節(jié)數(shù)中差別。 此例, 沒有 0x5320 多字節(jié)時間之間分配兩日志被捕獲。 字節(jié)來自調(diào)用堆棧, 由 " BackTrace00053 "。

下一步是要了解什么是該 backtrace 中。 如果打開二日志文件和搜索 BackTrace00053 , 可能發(fā)現(xiàn)內(nèi)容, 類似于以下內(nèi)容:
00005320 bytes in 0x14 allocations (@ 0x00000428) by: BackTrace00053
           ntdll!RtlDebugAllocateHeap+0x000000FD
           ntdll!RtlAllocateHeapSlowly+0x0000005A
           ntdll!RtlAllocateHeap+0x00000808
           MyApp!_heap_alloc_base+0x00000069
           MyApp!_heap_alloc_dbg+0x000001A2
           MyApp!_nh_malloc_dbg+0x00000023
           MyApp!_nh_malloc+0x00000016
           MyApp!operator new+0x0000000E
           MyApp!LeakyFunc+0x0000001E
           MyApp!main+0x0000002C
           MyApp!mainCRTStartup+0x000000FC
           KERNEL32!BaseProcessStart+0x0000003D
				
當(dāng)您查看調(diào)用堆棧, 您可以看到, LeakyFunc 函數(shù)分配內(nèi)存通過 VisualC++ 運行時庫運算符新函數(shù)。 如果發(fā)現(xiàn), 分配的數(shù)增大如采取多轉(zhuǎn)儲文件, 您可能斷定不被釋放內(nèi)存。

啟用堆棧跟蹤

UMDH 日志中最重要信息是堆棧跟蹤的堆分配。 您可以分析地驗證如果進程堆內(nèi)存泄漏。 默認情況下, 這些堆棧跟蹤不獲取。 您可啟用此功能每個進程或系統(tǒng)級。 使用以下命令以啟用堆棧跟蹤系統(tǒng)級:
gflags -r + ust
此命令后重新啟動計算機。 有關(guān)每個進程啟用, 命令是如下:
gflags APPNAME + ust - i
其中 APPNAME 是包括擴展名 (例如, Services.exe, Lsass.exe) 可執(zhí)行的文件名。 命令不啟用堆棧跟蹤為進程已運行。 因此, 對于進程, 無法重新 (用于示例、 服務(wù)、 lsass、 winlogon), 您必須重新啟動測試計算機。

使用以下命令以驗證哪些設(shè)置已設(shè)置系統(tǒng)級或特定進程: 系統(tǒng)范圍:: 系統(tǒng)范圍:
gflags - r
特定進程:
gflags APP - 名稱 - i
默認情況下, 大堆棧跟蹤深度是 16。 如果要查看深 callstacks, 可以通過運行 GFLAGS 增加此。 單擊以選中 系統(tǒng)注冊表 , 然后鍵入新深度 Max. 堆棧跟蹤捕獲深度 編輯控件中。 單擊 應(yīng)用 , 并重新啟動計算機。
要點 : 如果正在使用 Windows NT 4.0 Service Pack 6, 您必須使用 Umdh_nt4.exe, 代替 Umdh.exe, 并且您必須使用 gflags - r 命令來設(shè)置系統(tǒng)級堆棧跟蹤。 請確保您重新啟動計算機。 WindowsNT 版本 4 上每流程基礎(chǔ)上無效 Umdh_nt4 堆棧跟蹤。 它必須為整個系統(tǒng)設(shè)置。

調(diào)試符號

最重要步驟以使用 UMDH 之一是以確保您具有好符號文件 (.dbg 或 .pdb 文件) 以獲得良好堆棧跟蹤。 至少, 您需要 Kernel32.dbg 和 Ntdll.dbg 符號文件。 您可以獲得其他調(diào)試符號, 您可能需要與您了解多關(guān)于哪些組件泄漏內(nèi)存。 有關(guān)如何獲取 Microsoft 組件, 調(diào)試符號文件請單擊文章編號以查看 Microsoft 知識庫中相應(yīng):
311503 (http://support.microsoft.com/kb/311503/EN-US/) INFO: 使用 Microsoft 符號服務(wù)器來獲取調(diào)試符號文件
有關(guān)如何使用 MicrosoftSymbolServer 以及如何獲取 Windows 符號程序包, 請訪問 Microsoft Web 站點:
http://www.microsoft.com/whdc/devtools/ddk/default.mspx (http://www.microsoft.com/whdc/devtools/ddk/default.mspx)
當(dāng)您生成組件與 VisualC++, 值得您沒有將程序數(shù)據(jù)庫用于編輯和繼續(xù)選擇用于 C++ 編譯器選項。 相反, 選擇程序數(shù)據(jù)庫。 將符號路徑, 初始化到路徑用于 _ NT _ SYMBOL _ PATH 環(huán)境變量。 您可以使用 Microsoft 符號服務(wù)器來獲取用于 Microsoft 組件符號。
311503 (http://support.microsoft.com/kb/311503/EN-US/) INFO: 使用 Microsoft 符號服務(wù)器來獲取調(diào)試符號文件
請按照下列步驟來設(shè)置 _ NT _ SYMBOL _ PATH 環(huán)境變量:
1.在控制面板, 雙擊 系統(tǒng)
2.單擊 高級 選項卡, 然后再單擊 環(huán)境變量。
也可以在命令窗口運行 UMDH 之前設(shè)置 _ NT _ SYMBOL _ PATH 環(huán)境變量。

注意 : 也包括到 PDB 對組件的應(yīng)用程序路徑。 例如, _ NT _ SYMBOL _ PATH 路徑設(shè)置為以下:
SRV*c:\symbols*http://msdl.microsoft.com/download/symbols;c:\myapplicationssymbols
第第一部分對此路徑指向 MicrosoftSymbolServer 并指出 c:\symbols 文件夾中, 將下載符號使用。 分號后面部分是到 PDB 文件 (符號文件) 專門為泄漏應(yīng)用程序路徑。

調(diào)用 UMDH

只需要命令行參數(shù)對于 UMDH 是 - p 選項, 指定將從中獲取堆轉(zhuǎn)儲進程的 PID。 通過使用任務(wù)管理器或 Tlist.exe 程序獲得 PID。 轉(zhuǎn)日志為類似于以下, 命令將被儲到標準輸出:
umdh - p PID:
向標準錯誤, UMDH 還顯示各種信息性消息并因此如果您不執(zhí)行重定向其, 與實際日志混合它。 以收集 UMDH 信息性消息文件, 中使用以下命令:
umdh - p PID 2>umdh.msg:
如果要收集日志是由文件, 中 UMDH 轉(zhuǎn)儲, 使用下列命令之一:
umdh - p PID: umdh.log
- 或 -
umdh f:umdh.log PID - - p:
這些命令是等效。

通過 UMDH 獲得默認日志包含枚舉是堆消費者, 按分配計數(shù)排序。 如果還需要所有與其相應(yīng)堆棧跟蹤, 分配塊的轉(zhuǎn)儲文件用于調(diào)試目的, - d 選項用于:
umdh - p PID - d:
如果使用此命令, 您可能看到以下 UMDH 日志文件中:
對于跟蹤 BackTrace00046 分配 005F69A0 005F6150:
這些是用于調(diào)用該堆棧分配的內(nèi)存地址。 如果將調(diào)試器附加到進程, 您可轉(zhuǎn)儲內(nèi)存要查看哪些已分配這些地址上的內(nèi)容。

如果日志包含太多信息, 就可以僅限于那些具有分配大用戶計數(shù)超過特定閾值。 使用以下命令:
umdh - p PID - t: THRESHOLD:
所有命令行選項 (例如, - p、 - f, - t、 - d) 同時指定按任何順序。 下面是更難命令行示例:
umdh - p 123: 1000 - f:umdh.log - d - t:
此命令將轉(zhuǎn)儲堆對于過程與 PID 123 到 Umdh.log 文件。 它轉(zhuǎn)儲只堆棧跟蹤, 帳戶超過 1000 分配和它的堆塊通過每個堆棧跟蹤分配地址還轉(zhuǎn)儲。

另一個有用 UMDH 選項是 - l 選項。 這導(dǎo)致要盡可能調(diào)用堆棧中打印文件和行號。

解釋 UMDH 輸出

如果您重定向到文件日志 (PID -: umdh,) 內(nèi)容是類似于以下, 從運行 Notepad 進程已獲得它 - p: f:umdh.log
UMDH: Logtime 2000-06-28 10:54 - Machine=MYMachine - PID=704
   *********** Heap 00270000 Information ********************
       Flags: 58000062
       Number Of Entries: 87
       Number Of Tags: <unknown>
       Bytes Allocated: 00008DF0
       Bytes Committed: 0000A000
       Total FreeSpace: 00001210
       Number of Virtual Address chunks used: 1
       Address Space Used: <unknown>
       Entry Overhead: 8
       Creator:  (Backtrace00007)
           ntdll!RtlDebugCreateHeap+0x00000196
           ntdll!RtlCreateHeap+0x0000023F
           ntdll!LdrpInitializeProcess+0x00000369
           ntdll!LdrpInitialize+0x0000028D
           ntdll!KiUserApcDispatcher+0x00000007
   *********** Heap 00270000 Hogs ********************
   000001A0 bytes in 0x4 allocations (@ 0x00000068) by: BackTrace00031
           ntdll!RtlDebugAllocateHeap+0x000000FB
           ntdll!RtlAllocateHeapSlowly+0x0000005B
           ntdll!RtlAllocateHeap+0x00000D81
           ntdll!LdrpAllocateDataTableEntry+0x00000039
           ntdll!LdrpMapDll+0x000002A4
           ntdll!LdrpLoadImportModule+0x0000010D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpInitializeProcess+0x000009DC
           ntdll!LdrpInitialize+0x0000028D
           ntdll!KiUserApcDispatcher+0x00000007

   000001A0 bytes in 0x4 allocations (@ 0x00000068) by: BackTrace00034
           ntdll!RtlDebugAllocateHeap+0x000000FB
           ntdll!RtlAllocateHeapSlowly+0x0000005B
           ntdll!RtlAllocateHeap+0x00000D81
           ntdll!LdrpAllocateDataTableEntry+0x00000039
           ntdll!LdrpMapDll+0x000002A4
           ntdll!LdrpLoadImportModule+0x0000010D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpLoadImportModule+0x0000011D
           ntdll!LdrpWalkImportDescriptor+0x0000008B
           ntdll!LdrpInitializeProcess+0x000009DC
           ntdll!LdrpInitialize+0x0000028D
           ntdll!KiUserApcDispatcher+0x00000007
				
日志包含的進程中每個堆轉(zhuǎn)儲。 在本示例, 日志開頭 270000 地址處堆。 對于堆, 幾全局計數(shù)器后日志包含按減少排序順序的大多數(shù)分配負責(zé)堆棧跟蹤轉(zhuǎn)儲。 比較不同時間, 上所使用的內(nèi)存動態(tài)時, 可推斷進程中發(fā)生什么, 如果任何堆使用它類似于泄漏。

使用 UMDH 時, 您可能會遇到問題

因為未啟用堆棧跟蹤發(fā)生常見錯誤使用 UMDH 時。 也, 用于 Ntdll.dll 正確符號使 UMDH 無法運行。 對于其他符號文件, UMDH 運行但日志文件包含堆棧跟蹤沒有函數(shù)名稱, 但而具有內(nèi)部模塊相對地址。 遠程三錯誤指定錯誤 PID。 當(dāng)您嘗試為沒有啟用堆棧跟蹤過程運行 UMDH 產(chǎn)生以下錯誤信息:
C:\>umdh = MyMachine - PID 1140 UMDH = 1140 連接正在完成模塊枚舉 logtime 06 28 2000 - - - p:: 12:43 - 計算機。 SymGetSymFromName(process, ntdll!RtlpStackTraceDataBase, xxx) 失敗, LastError = 126 ntdll UmdhGetAddrFromName 未能找到堆棧跟蹤 DB 指針) RtlpStackTraceDataBase ! (。 ntdll.dll 符號不正確 ; 我們必須能夠看到非導(dǎo)入符號。
使用以下命令來復(fù)查過程, 您正在調(diào)查設(shè)置:
gflags APPNAME - i
您依賴于系統(tǒng)級堆棧跟蹤時使用以下命令:
gflags - r
這些命令顯示 flags 設(shè)置為應(yīng)用程序的列表。 注意如果是系統(tǒng)級堆棧跟蹤, 功能可能顯示為活動但實際上不激活如果您找不重新啟動計算機運行 gflags -r + ust 命令, 后。 如果要了解具有啟用, 堆棧跟蹤每個應(yīng)用程序可查看以下注冊表項下 USTEnabled 項:
HKEY NT\CurrentVersion\Image 文件執(zhí)行選項
如果 UMDH 具有啟用, 堆棧跟蹤進程上運行, 但由于您設(shè)置標志, 不重新應(yīng)用日志中可能會收到以下消息:
沒有用于此分配保存堆棧跟蹤 () 索引 = = 0
如果您運行不要設(shè)置正確符號路徑或符號不正確, 和運行 UMDH, 日志中可能會收到錯誤消息。 但是, 只出現(xiàn)錯誤或誤導(dǎo) callstacks。 若要驗證是否有正確符號, 例如啟動對進程, NTSD 系統(tǒng)調(diào)試器:
ntsd 記事本
然后, 從調(diào)試器控制臺, 運行 LD 命令以加載符號信息對模塊和 LM 命令以模塊有加載其符號列表。 如果 LM 命令的輸出顯示導(dǎo)出符號加載, 符號是不好。 如果您有加載, PDB 符號符號是好。 如果指定錯誤 PID 可能出現(xiàn)以下錯誤信息:
OpenProcess 失敗, LastError = 0x57

從 VisualBasic 調(diào)用 UMDH

最初可能有時用于轉(zhuǎn)儲隨著時間的日志數(shù)量因為泄漏可能不很明顯。 例如, 如果懷疑 Active Server Pages (ASP) Web 應(yīng)用程序, 是泄漏內(nèi)存, 它可能有助于出 shells, VisualBasic 中寫入 UMDH COM 組件。 然后可從您的 ASP 頁調(diào)用該組件。

下面是一些 VisualBasic 代碼調(diào)用 UMDH, 創(chuàng)建一個日志文件是基于當(dāng)前時間:
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
      Public Function GetProcessID()
      GetProcessID = GetCurrentProcessId()
      End Function  
   .
   .
   .
      Dim strTime As String

      Dim sProcID As String
      sProcID = GetProcessID()
      strTime = "MYLOG_" & Format(Now(), "hhmm")
     
      Shell ("C:\UMDH\umdh -p:" & sProcID & " -f:d:\logs\" & strTime & ".txt")
				

使用 Windows NT 4.0 服務(wù)軟件包 6a UMDH (SP6a)

Windows NT 4.0 上無效 UMDH 工具隨 DebuggingToolsforWindows 產(chǎn)品一起提供。 自解壓縮可執(zhí)行 (Umdhnt4tools.exe) 是隨本文并包含以下工具用于與 NT 4.0:
?Umdh_nt4.exe 和 Dbghelp.dll
這是 UMDH 實用程序的 Windows NT 4.0 SP 6 版本。
?Dhcmp.exe
此工具用于比較兩 UMDH 轉(zhuǎn)儲以確定其中可能內(nèi)存泄漏 occurrs。
可用于從 Microsoft 下載中心下載下列文件:
DownloadDownload Umdhnt4tools.exe now (http://download.microsoft.com/download/win2000srv/utility/1.0/nt45/en-us/umdhnt4tools.exe)
August 28, 2002 發(fā)布日期:

有關(guān)如何下載 Microsoft 支持文件, 請單擊下列文章編號以查看 Microsoft 知識庫中相應(yīng):
119591 (http://support.microsoft.com/kb/119591/EN-US/) 如何從聯(lián)機服務(wù)獲取 Microsoft 支持文件
此文件進行病毒掃描 Microsoft。 Microsoft 使用最新病毒檢測軟件, 投遞文件日期上的可用。 文件存儲在安全增強型服務(wù)器有助于防止未經(jīng)授權(quán)更改對該文件。 文件夾, 置于 Umdh_nt4.exe 和 Dbghelp.dll 并再將它們首先在 PATH 環(huán)境變量。 使用 Umdh_nt4.exe 代替 UMDH。

是運行 Windows NT 4.0, 計算機上必須使用 Gflags.exe 來設(shè)置系統(tǒng)級堆棧跟蹤。 例如:
gflags - r
請確保您重新啟動計算機。 WindowsNT 版本 4.0 上逐個進程無效 Umdh_nt4 堆棧跟蹤。 設(shè)置對整個系統(tǒng)。

與 UMDH UMDH_NT4 是, 它不比較日志文件。 例如, 您無法執(zhí)行以下操作:
UMDH_NT4 dh1.log dh2.log > cmp12.txt
而必須使用 Dhcmp.exe 工具所附帶本文。 類似于以下命令:
DHCMP dh1.log dh2.log > cmp12.txt

這篇文章中的信息適用于:
? Microsoft Windows 2000 Server
? Microsoft Windows 2000 Advanced Server
? Microsoft Windows 2000 Professional Edition
? Microsoft Windows NT Server 4.0 Standard Edition
? Microsoft Windows NT Workstation 4.0 Developer Edition
關(guān)鍵字:?
kbdownload kbarttypeshowme kbfile kbgraphxlinkcritical kbhowto kbsample KB268343 KbMtzh kbmt
Microsoft和/或其各供應(yīng)商對于為任何目的而在本服務(wù)器上發(fā)布的文件及有關(guān)圖形所含信息的適用性,不作任何聲明。 所有該等文件及有關(guān)圖形均"依樣"提供,而不帶任何性質(zhì)的保證。Microsoft和/或其各供應(yīng)商特此聲明,對所有與該等信息有關(guān)的保證和條件不負任何責(zé)任,該等保證和條件包括關(guān)于適銷性、符合特定用途、所有權(quán)和非侵權(quán)的所有默示保證和條件。在任何情況下,在由于使用或運行本服務(wù)器上的信息所引起的或與該等使用或運行有關(guān)的訴訟中,Microsoft和/或其各供應(yīng)商就因喪失使用、數(shù)據(jù)或利潤所導(dǎo)致的任何特別的、

posted on 2006-07-03 12:48 楊粼波 閱讀(2589) 評論(0)  編輯 收藏 引用 所屬分類: 文章收藏

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美激情精品久久久久久大尺度| 欧美在线3区| 99视频精品在线| 99re8这里有精品热视频免费| 精品999久久久| 在线精品亚洲一区二区| 在线看国产一区| 亚洲美女精品成人在线视频| 日韩一区二区精品视频| 在线视频精品一区| 亚洲伊人伊色伊影伊综合网| 午夜精品久久久久久久男人的天堂 | 免费在线欧美黄色| 欧美成人免费在线观看| 欧美视频第二页| 国产综合色在线视频区| 亚洲人成在线播放网站岛国| 亚洲视频大全| 久久精品天堂| 亚洲精品小视频| 欧美在线看片a免费观看| 免费精品99久久国产综合精品| 欧美女同视频| 黄色资源网久久资源365| 亚洲精品永久免费精品| 欧美一二三区在线观看| 欧美激情精品久久久久| 亚洲永久免费观看| 男同欧美伦乱| 国产亚洲精品综合一区91| 一本大道久久a久久精二百| 久久国产精品电影| 亚洲免费观看| 欧美成人第一页| 国产欧美精品一区二区三区介绍| 亚洲激情婷婷| 麻豆成人精品| 午夜精品亚洲| 欧美日韩亚洲综合一区| 在线观看精品一区| 欧美一站二站| 亚洲一区二区日本| 欧美日韩一区二区三区在线看| 一区二区三区在线观看视频| 亚洲免费在线播放| 亚洲精品一二区| 久久午夜影视| 国内激情久久| 久久久久国产成人精品亚洲午夜| 国产精品久久久久婷婷| 久久久久久久一区二区| 国产精品久久久久久久久果冻传媒| 一区在线影院| 久久国产免费| 亚洲视频播放| 欧美日韩精品系列| 99精品热6080yy久久| 欧美+亚洲+精品+三区| 香蕉久久夜色精品| 国产欧美日韩一区二区三区在线观看| 亚洲天堂免费在线观看视频| 日韩亚洲精品电影| 欧美精品www在线观看| 91久久综合亚洲鲁鲁五月天| 欧美成人高清| 欧美成人日本| 一区二区三区视频观看| 亚洲精品在线一区二区| 欧美激情综合色综合啪啪| 99re热这里只有精品免费视频| 亚洲国产毛片完整版| 久久这里只精品最新地址| 狠狠狠色丁香婷婷综合久久五月 | 亚洲精品免费一区二区三区| 欧美精品一区二区三区在线看午夜 | 免费在线欧美视频| 久久综合久久久| 亚洲国产欧美国产综合一区 | 蜜臀av性久久久久蜜臀aⅴ| 久久久www成人免费毛片麻豆| 在线观看视频亚洲| 欧美激情一区二区三区在线| 欧美精品福利视频| 亚洲欧美日韩国产另类专区| 欧美一区二区福利在线| 亚洲高清视频的网址| 亚洲欧洲日产国产综合网| 国产精品视频xxx| 久久视频在线视频| 欧美黑人一区二区三区| 午夜日韩av| 久久亚洲精品欧美| 亚洲图片激情小说| 久久福利影视| 狠色狠色综合久久| 久久国产手机看片| 欧美成在线观看| 午夜精品在线视频| 可以看av的网站久久看| 亚洲一区免费网站| 午夜精品久久99蜜桃的功能介绍| 午夜精品999| 久久精品国语| 亚洲在线一区二区| 久久夜色精品亚洲噜噜国产mv| 日韩一二在线观看| 先锋亚洲精品| 亚洲婷婷综合久久一本伊一区| 久久精品国产免费| 亚洲夜晚福利在线观看| 久久视频一区| 久久精品99久久香蕉国产色戒| 欧美11—12娇小xxxx| 久久久久久久久蜜桃| 欧美日韩国产一级| 欧美寡妇偷汉性猛交| 国产精品羞羞答答xxdd| 亚洲国产成人不卡| 国外成人在线视频网站| 亚洲视频一区| 一区二区三区精品国产| 久久综合久色欧美综合狠狠| 欧美亚洲专区| 国产精品试看| 亚洲专区免费| 亚洲免费人成在线视频观看| 欧美国产日韩精品免费观看| 欧美成人精品福利| 有码中文亚洲精品| 久久成人精品| 久久精品理论片| 国产精品私人影院| 亚洲一区在线看| 亚洲欧美日韩专区| 国产精品久久久99| 亚洲一区二区三区在线视频| 亚洲视频第一页| 欧美午夜激情视频| 亚洲午夜一区二区| 羞羞答答国产精品www一本| 国产精品成人午夜| 亚洲一区久久久| 久久国产一区| 精品av久久久久电影| 久久亚洲精品中文字幕冲田杏梨| 久久免费黄色| 91久久精品国产| 欧美精品一区二区三| 亚洲精品视频在线看| 国产精品99久久久久久久女警| 欧美日韩你懂的| 亚洲午夜激情免费视频| 午夜影院日韩| 狠狠噜噜久久| 欧美va天堂va视频va在线| 亚洲精品一区二区三区婷婷月 | 亚洲视频网站在线观看| 性欧美xxxx视频在线观看| 国产亚洲精品高潮| 麻豆精品网站| 亚洲精品久久久久久久久久久| 一本一本久久| 国产日韩av一区二区| 久久精品国产99国产精品澳门| 美女精品一区| 国产一二三精品| 亚洲精品日产精品乱码不卡| 9人人澡人人爽人人精品| 欧美色一级片| 亚洲男人第一av网站| 久久精品国产免费| 亚洲电影免费在线 | 国产精品亚洲综合一区在线观看| 亚洲欧美日韩中文在线制服| 久久久亚洲影院你懂的| 亚洲肉体裸体xxxx137| 国产精品久久久久久影视 | 久久伊伊香蕉| 一本色道久久88综合亚洲精品ⅰ | 久久中文字幕一区二区三区| 亚洲精品乱码久久久久久黑人| 欧美日韩中文字幕在线视频| 欧美自拍偷拍| 亚洲最新在线| 老色批av在线精品| 亚洲在线电影| 亚洲精品欧洲精品| 国内精品久久久久久久影视麻豆| 欧美喷潮久久久xxxxx| 亚洲国产毛片完整版| 国产精品视频观看| 欧美日韩不卡一区| 蜜桃av综合| 久久国产精品一区二区| 日韩午夜av在线| 欧美成人影音| 久久在精品线影院精品国产| 亚洲欧美国产高清| 夜夜嗨网站十八久久| 亚洲欧洲一区二区在线观看|