共用方式為


範例 10:偵測進程中的堆積記憶體流失

此範例使用 GFlags 和使用者模式傾印堆積 (UMDH,umdh.exe) ,這是適用于 Windows 的 Microsoft 偵錯工具中包含的工具。

偵測notepad.exe堆積記憶體中的流失

  1. 設定notepad.exe映射檔的 [ 建立使用者模式堆疊追蹤資料庫 ] (ust) 旗標。

    下列命令會使用 GFlags 來設定 建立使用者模式堆疊追蹤資料庫 旗標。 它會使用 /i 參數來識別映射檔和旗標的 ust 縮寫。

    gflags /i Notepad.exe +ust 
    

    由於此命令,系統會針對記事本程式的所有新實例建立使用者模式堆疊追蹤。

  2. 設定符號檔路徑。

    下列命令會建立環境變數,以儲存符號檔目錄的路徑:

    set _NT_SYMBOL_PATH=C:\Windows\symbols
    
  3. 啟動 [記事本]。

  4. 尋找記事本程式的 PID) (進程識別碼。

    您可以從工作管理員或工作清單 (tasklist.exe) 找到任何執行中進程的 PID,這是 Windows XP Professional 和 Windows Server 2003 作業系統中包含的工具。 在此範例中,記事本 PID 為 1228。

  5. 執行 UMDH。

    下列命令會執行 UMDH (umdh.exe) 。 它會使用 -p: 參數來指定 PID,在此範例中為 1228。 它會使用 /f: 參數來指定堆積傾印的輸出檔名稱與位置,記事本.dmp。

    umdh -p:1228 -f:notepad.dmp 
    

    為了回應,UMDH 會將所有作用中堆積的完整傾印寫入記事本.dmp 檔案。