Condividi tramite


Esempio 10: Rilevamento di una perdita di memoria heap in un processo

Questo esempio usa GFlags e l'heap dump in modalità utente (UMDH, umdh.exe), uno strumento incluso in Strumenti di debug Microsoft per Windows.

Per rilevare una perdita di memoria heap in notepad.exe

  1. Impostare il flag Create user mode stack trace database (ust) per il file di immagine notepad.exe.

    Il comando seguente usa GFlags per impostare il flag Crea database di analisi dello stack in modalità utente . Usa il parametro /i per identificare il file di immagine e l'abbreviazione della ust per il flag.

    gflags /i Notepad.exe +ust 
    

    In seguito a questo comando, viene creata un'analisi dello stack in modalità utente per tutte le nuove istanze del processo del Blocco note.

  2. Impostare il percorso del file di simboli.

    Il comando seguente crea una variabile di ambiente che archivia il percorso della directory dei file di simboli:

    set _NT_SYMBOL_PATH=C:\Windows\symbols
    
  3. Avviare il Blocco note.

  4. Trovare l'identificatore del processo (PID) del processo del Blocco note.

    È possibile trovare il PID di qualsiasi processo in esecuzione da Task Manager o Tasklist (tasklist.exe), uno strumento incluso nei sistemi operativi Windows XP Professional e Windows Server 2003. In questo esempio il PID del Blocco note è 1228.

  5. Eseguire UMDH.

    Il comando seguente esegue UMDH (umdh.exe). Usa il parametro -p: per specificare il PID che, in questo esempio, è 1228. Usa il parametro /f: per specificare il nome e il percorso del file di output per il dump dell'heap, notepad.dmp.

    umdh -p:1228 -f:notepad.dmp 
    

    In risposta, UMDH scrive un dump completo di tutti gli heap attivi nel file notepad.dmp.