Condividi tramite


Verifica dell'applicazione - Codici di arresto - Varie

In questo set di test sono contenuti i codici di arresto seguenti.

Chiamata pericolosa a TerminateThread.

Causa probabile

Questo arresto viene generato se un thread (l'ID thread è parametro1) viene terminato in modo esplicito usando TerminateThread. Questa funzione è molto pericolosa perché introduce il danneggiamento dei dati e i deadlock (in base a MSDN).

Informazioni visualizzate da Application Verifier
  • Parametro 1  - ID thread per il chiamante di Terminatethread.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Pericoloso
  • ID arresto:  TERMINATE_THREAD_CALL
  • Arrestare il codice:  100NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Potenziale overflow dello stack in condizioni di memoria insufficiente.

Causa probabile

Questo arresto viene generato se la dimensione iniziale del commit dello stack di un thread è tale che un overflow dello stack può essere generato in condizioni di memoria ridotta se lo stack non può essere esteso.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Non usato.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Pericoloso
  • ID arresto:  STACK_OVERFLOW
  • Arrestare il codice:  100NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

ExitProcess chiamato durante l'esecuzione di più thread.

Causa probabile

Questo arresto viene generato se un thread chiama ExitProcess mentre sono in esecuzione diversi thread. In questo caso, terminateThread verrà chiamato internamente per ogni thread e ciò può creare deadlock o danneggiamenti dei dati.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Numero di thread in esecuzione.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Pericoloso
  • ID arresto:  INVALID_EXIT_PROCESS_CALL
  • Arrestare il codice:  100NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

LoadLibrary viene chiamato durante DllMain.

Causa probabile

Questo arresto viene generato se il codice all'interno di DllMain chiama LoadLibrary o FreeLibary. È il comportamento negato da MSDN.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Dll Name (usare du per eseguire il dump).
  • Parametro 2  -Indirizzo di base dll .
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Pericoloso
  • ID arresto:  INVALID_LOAD_LIBRARY_CALL
  • Arrestare il codice:  100NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

FreeLibrary viene chiamato durante DllMain.

Causa probabile

Questo arresto viene generato se il codice all'interno di DllMain chiama LoadLibrary o FreeLibary. È il comportamento negato da MSDN.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Dll Name (usare du per eseguire il dump).
  • Parametro 2  -Indirizzo di base dll .
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Pericoloso
  • ID arresto:  INVALID_FREE_LIBRARY_CALL
  • Arrestare il codice:  100NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

SetProcessWorkingSetSize viene chiamato con MinimumWorkingSetSize = 0xFFFFFFFF.

Causa probabile

Usare MinimumWorkingSetSize = (SIZE_T) -1.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Non usato.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Pericoloso
  • ID di arresto:  INVALID_MINIMUM_PROCESS_WORKING_SIZE
  • Arrestare il codice:  100NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

SetProcessWorkingSetSize viene chiamato con MaximumWorkingSetSize = 0xFFFFFFFF.

Probabile causa

Usare MaximumWorkingSetSize = (SIZE_T) -1.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Non usato.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Pericoloso
  • ID di arresto:  INVALID_MAXIMUM_PROCESS_WORKING_SIZE
  • Arrestare il codice:  100NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

SetProcessWorkingSetSizeEx viene chiamato con MinimumWorkingSetSize = 0xFFFFFFFF.

Probabile causa

Usare MinimumWorkingSetSize = (SIZE_T) -1.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Non usato.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Pericoloso
  • ID di arresto:  INVALID_MINIMUM_PROCESS_WORKING_SIZE_EX
  • Arrestare il codice:  100NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

SetProcessWorkingSetSizeEx viene chiamato con MaximumWorkingSetSize = 0xFFFFFFFF.

Probabile causa

Usare MaximumWorkingSetSize = (SIZE_T) -1.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Non usato.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Pericoloso
  • ID di arresto:  INVALID_MAXIMUM_PROCESS_WORKING_SIZE_EX
  • Arrestare il codice:  100NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Il thread non può essere proprietario di una sezione critica.

Probabile causa

Questo arresto viene generato se un thread (ID thread è parametro1) viene terminato, sospeso o in uno stato (thread di lavoro completato un elemento di lavoro) in cui non può contenere una sezione critica. Il thread corrente è il colpevole. Per eseguire il debug di questo arresto, usare i comandi del debugger seguenti: $ kb - per ottenere la traccia dello stack corrente. Se il thread corrente è il proprietario della sezione critica, probabilmente chiama ExitThread. Il thread corrente deve essere stato rilasciato la sezione critica prima di uscire. Se il thread corrente chiama TerminateThread o SuspendThread, non deve eseguire questa operazione per un thread che contiene una sezione critica. $ !cs -s parameter2 - informazioni di dump su questa sezione critica. $ ln parameter2 : per visualizzare i simboli vicino all'indirizzo della sezione critica. Ciò dovrebbe aiutare a identificare la sezione critica rilevata. $ dps parameter4: per eseguire il dump della traccia dello stack per questa sezione critica di inizializzazione.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - ID thread.
  • Parametro 2  - Indirizzo della sezione critica.
  • Parametro 3  -Critical section debug information address (Informazioni  di debug della sezione critica).
  • Parametro 4  -Critical section initialization stack trace( Traccia  dello stack di inizializzazione della sezione critica).

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID di arresto:  EXIT_THREAD_OWNS_LOCK
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Scaricare la DLL contenente una sezione critica attiva.

Probabile causa

Questo arresto viene generato se una DLL ha una variabile globale contenente una sezione critica e la DLL viene scaricata ma la sezione critica non è stata eliminata. Per eseguire il debug di questo arresto, usare i comandi del debugger seguenti: $ du parameter3 - per eseguire il dump del nome della DLL colpevole. $ .reload dllname o .reload dllname = parameter4 : per ricaricare i simboli per tale DLL. $ !cs -s parameter1 : informazioni sul dump su questa sezione critica. $ ln parameter1 : per visualizzare i simboli vicino all'indirizzo della sezione critica. Ciò dovrebbe aiutare a identificare la sezione critica rilevata. $ dps parameter2: per eseguire il dump della traccia dello stack per questa sezione critica di inizializzazione.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  -Critical section initialization stack trace( Traccia  dello stack di inizializzazione della sezione critica).
  • Parametro 3  -Indirizzo  del nome DLL.
  • Parametro 4  -Indirizzo  di base DLL.

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID di arresto:  LOCK_IN_UNLOADED_DLL
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Liberare un blocco heap contenente una sezione critica attiva.

Probabile causa

Questo arresto viene generato se un'allocazione heap contiene una sezione critica, l'allocazione viene liberata e la sezione critica non è stata eliminata. Per eseguire il debug, usare i comandi del debugger seguenti: $ !cs -s parameter1 - informazioni di dump su questa sezione critica. $ ln parameter1 : per visualizzare i simboli vicino all'indirizzo della sezione critica. Ciò dovrebbe aiutare a identificare la sezione critica rilevata. $ dps parameter2: per eseguire il dump della traccia dello stack per questa sezione critica di inizializzazione. $ parameter3 e parameter4 potrebbero aiutare a comprendere dove è stato allocato questo blocco heap (le dimensioni dell'allocazione probabilmente sono significative).

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  -Critical section initialization stack trace( Traccia  dello stack di inizializzazione della sezione critica).
  • Parametro 3  -Indirizzo  di blocco heap.
  • Parametro 4  -Dimensioni  del blocco heap.

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID di arresto:  LOCK_IN_FREED_HEAP
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Doppia sezione inizializzata o danneggiata.

Probabile causa

In genere questa interruzione viene generata se è stata inizializzata più di una volta una sezione critica. In questo caso parametri3 e parameter4 sono gli indirizzi di traccia dello stack per due di queste inizializzazioni. Alcune altre volte è possibile ottenere questo arresto se la sezione critica o la relativa struttura di informazioni di debug è stata danneggiata. In questo secondo caso è possibile che il parametro3 e parameter4 non siano validi e inutili. Per eseguire il debug di questa interruzione: $ !cs -s -d parameter2 - informazioni sul dump su questa sezione critica. $ ln parameter1 : per visualizzare i simboli vicino all'indirizzo della sezione critica. Ciò può aiutare a identificare la sezione critica se si tratta di una variabile globale. $ dps parameter3 e dps parameter4: per identificare i due percorsi di codice per inizializzare questa sezione critica.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  - Indirizzo della struttura di informazioni di debug trovata nell'elenco attivo.
  • Parametro 3  - Prima traccia dello stack di inizializzazione.
  • Parametro 4  - Seconda traccia dello stack di inizializzazione.

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID di arresto:  LOCK_DOUBLE_INITIALIZE
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Memoria libera contenente una sezione critica attiva.

Probabile causa

Questo arresto viene generato se la memoria contenente una sezione critica è stata liberata, ma la sezione critica non è stata eliminata usando DeleteCriticalSection. Per eseguire il debug di questo arresto, usare i comandi del debugger seguenti: $ !cs -s -d parameter2 - informazioni di dump su questa sezione critica. $ dps parameter3: per identificare il percorso del codice per inizializzare questa sezione critica. Nella maggior parte dei casi, il verificatore di blocco rileva immediatamente sezioni critiche contenute in un'allocazione heap, un intervallo dll, un'allocazione di memoria virtuale o un intervallo di memoria mappato MapViewOfFile e problemi diversi in questi casi. Quindi ci sono pochi casi lasciati per questo verificatore stop. Il blocco deve trovarsi in un intervallo di memoria liberato dal codice in modalità kernel o liberato da API come VirtualFreeEx. La maggior parte di queste interruzioni viene in genere rilevata se un arresto precedente (ad esempio, LOCK_IN_FREED_HEAP o LOCK_IN_UNLOADED_DLL) è stato continuato premendo "g" nella console del debugger.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  -Critical section debug information address (Informazioni  di debug della sezione critica).
  • Parametro 3  -Critical section initialization stack trace( Traccia  dello stack di inizializzazione della sezione critica).
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID di arresto:  LOCK_IN_FREED_MEMORY
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Sezione critica danneggiata.

Probabile causa

Questo arresto viene generato se il campo DebugInfo della sezione critica punta la memoria liberata. In genere si trova un'altra struttura DebugInfo valida nell'elenco di sezioni critiche attive. Senza danneggiamento i due puntatori devono essere identici. Per eseguire il debug di questo arresto, usare i comandi del debugger seguenti: $ !cs -s -d parameter3 - dump informazioni su questa sezione critica in base al contenuto corrente della struttura delle informazioni di debug presenti nell'elenco attivo (questa struttura è raramente danneggiata in modo che in genere queste informazioni sono attendibili). $ !cs -s parameter1 - informazioni di dump su questa sezione critica in base al contenuto corrente della struttura della sezione critica (la struttura è già danneggiata in modo che a volte queste informazioni non sono attendibili). $ dps parameter4 : per identificare il percorso del codice per inizializzare questa sezione critica. Eseguire il dump della sezione critica in address parameter1 e cercare il modello di danneggiamento. Con simboli validi per ntdll.dl è possibile usare i comandi seguenti: $ dt ntdll!_RTL_CRITICAL_SECTION LOCK_ADDRESS $ dt ntdll!_RTL_CRITICAL_SECTION_DEBUG DEBUG_ADDRESS

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  -Indirizzo  informazioni di debug non valido di questa sezione critica.
  • Parametro 3  - Indirizzo delle informazioni di debug trovate nell'elenco attivo.
  • Parametro 4  - Inizializzazione della traccia dello stack.

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID di arresto:  LOCK_CORRUPTED
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Thread proprietario della sezione critica non valido.

Probabile causa

Questo arresto viene generato se l'ID del thread proprietario non è valido nel contesto corrente. Per eseguire il debug di questa interruzione: $ !cs -s parameter1 - informazioni di dump su questa sezione critica. $ ln parameter1 : per visualizzare i simboli vicino all'indirizzo della sezione critica. In questo modo è necessario identificare la sezione critica.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  - Owning thread.
  • Parametro 3  - Previsto thread di proprietà.
  • Parametro 4  -Critical section debug info address (Informazioni  di debug della sezione critica).

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID di arresto:  LOCK_INVALID_OWNER
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Numero di ricorsioni della sezione critica non valido.

Probabile causa

Questo arresto viene generato se il campo conteggio ricorsione della struttura di sezione critica non è valido nel contesto corrente. Per eseguire il debug di questa interruzione: $ !cs -s parameter1 - informazioni di dump su questa sezione critica. $ ln parameter1 : per visualizzare i simboli vicino all'indirizzo della sezione critica. In questo modo è necessario identificare la sezione critica.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  -Numero  di ricorsioni.
  • Parametro 3  -Numero  di ricorsioni previsto.
  • Parametro 4  -Critical section debug info address (Informazioni  di debug della sezione critica).

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID di arresto:  LOCK_INVALID_RECURSION_COUNT
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Eliminazione della sezione critica con conteggio di blocchi non validi.

Probabile causa

Questo arresto viene generato se una sezione critica è di proprietà di un thread se viene eliminata o se la sezione critica non è inizializzata. Per eseguire il debug di questa interruzione: $ !cs -s parameter1 - informazioni di dump su questa sezione critica. Se il thread proprietario è 0 la sezione critica non è stata inizializzata. $ ln parameter1 : per visualizzare i simboli vicino all'indirizzo della sezione critica. In questo modo è necessario identificare la sezione critica.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  - Conteggio blocchi.
  • Parametro 3  - Conteggio dei blocchi previsto.
  • Parametro 4  - Owning thread.

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID di arresto:  LOCK_INVALID_LOCK_COUNT
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Sezione critica rilasciata o danneggiata.

Probabile causa

Questo arresto viene generato se una sezione critica viene rilasciata più volte rispetto al thread corrente acquisito. Per eseguire il debug di questa interruzione: $ !cs -s parameter1 - informazioni di dump su questa sezione critica. $ !cs -s -d parameter4 : informazioni sul dump su questa sezione critica. $ ln parameter1 : per visualizzare i simboli vicino all'indirizzo della sezione critica. In questo modo è necessario identificare la sezione critica.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  - Conteggio blocchi.
  • Parametro 3  - Conteggio dei blocchi previsto.
  • Parametro 4  -Critical section debug info address (Informazioni  di debug della sezione critica).

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID di arresto:  LOCK_OVER_RELEASED
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Sezione critica non inizializzata.

Probabile causa

Questo arresto viene generato se viene usata una sezione critica senza essere inizializzata o dopo l'eliminazione. Per eseguire il debug di questa interruzione: $ ln parameter1 : per visualizzare i simboli vicino all'indirizzo della sezione critica. In questo modo è necessario identificare la sezione critica.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  -Critical section debug info address (Informazioni  di debug della sezione critica).
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID arresto:  LOCK_NOT_INITIALIZED
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

La sezione critica è già inizializzata.

Causa probabile

Questo arresto viene generato se una sezione critica viene reinizializzata dal thread corrente. Per eseguire il debug di questa interruzione: $ !cs -s parameter1 o !cs -s -d parameter2 - informazioni sul dump su questa sezione critica. $ ln parameter1: per visualizzare i simboli vicino all'indirizzo della sezione critica. Ciò potrebbe aiutare a identificare la sezione critica se si tratta di una variabile globale. $ dps parameter3: per identificare il percorso del codice per la prima inizializzazione di questa sezione critica. $ kb: per visualizzare l'analisi dello stack corrente, che sta reinizializzando questa sezione critica.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  -Critical section debug info address.- critical section debug info address.
  • Parametro 3  - Prima analisi dello stack di inizializzazione. Usare dps per eseguire il dump se non NULL
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID arresto:  LOCK_ALREADY_INITIALIZED
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Liberare memoria virtuale contenente una sezione critica attiva.

Causa probabile

Questo arresto viene generato se il thread corrente chiama VirtualFree in un blocco di memoria che contiene una sezione critica attiva. L'applicazione deve chiamare DeleteCriticalSection in questa sezione critica prima di liberare questa memoria. $ kb: per visualizzare l'analisi dello stack corrente, che chiama VirtualFree. Il probabile colpevole è la DLL che chiama VirtualFree. $ !cs -s parameter1 - Informazioni di dump su questa sezione critica. $ dps parameter2: per identificare il percorso del codice per l'inizializzazione di questa sezione critica.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  - Analisi dello stack di inizializzazione della sezione critica.
  • Parametro 3  -Indirizzo  blocco di memoria.
  • Parametro 4  - Dimensioni del blocco di memoria.

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID arresto:  LOCK_IN_FREED_VMEM
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Annullare il mapping dell'area di memoria contenente una sezione critica attiva.

Causa probabile

Questo arresto viene generato se il thread corrente chiama UnmapViewOfFile in un blocco di memoria che contiene una sezione critica attiva. L'applicazione deve chiamare DeleteCriticalSection in questa sezione critica prima di rimuovere il mapping della memoria. $ kb : per visualizzare l'analisi dello stack corrente, che chiama UnmapViewOfFile . Il probabile colpevole è la DLL che chiama UnmapViewOfFile. $ !cs -s parameter1 - Informazioni di dump su questa sezione critica. $ dps parameter2: per identificare il percorso del codice per l'inizializzazione di questa sezione critica.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  - Analisi dello stack di inizializzazione della sezione critica.
  • Parametro 3  -Indirizzo  blocco di memoria.
  • Parametro 4  - Dimensioni del blocco di memoria.

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID arresto:  LOCK_IN_UNMAPPED_MEM
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Il thread corrente non possiede sezioni critiche.

Causa probabile

Questo arresto viene generato se il thread corrente chiama LeaveCriticalSection, ma, in base alla contabilità del classificatore interno, non possiede alcuna sezione critica. Se parameter2 è zero, probabilmente si tratta di un bug nel thread corrente. Prova a lasciare una sezione critica che non è stata immessa o forse chiama LeaveCriticalSection più volte di quanto chiamato EnterCriticalSection per la stessa sezione critica. Se parameter2 non è zero (è un numero intero negativo) le strutture dei dati del verifier interno sono probabilmente danneggiate.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  - Numero di sezioni critiche di proprietà del thread corrente.
  • Parametro 3  - Non usato
  • Parametro 4  - Non usato

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID arresto:  THREAD_NOT_LOCK_OWNER
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Uso della sezione critica privata a un'altra DLL.

Causa probabile

Questo arresto viene generato se il thread corrente tenta di usare un blocco privato che si trova all'interno di un'altra DLL. Ad esempio, a.dll tenta di immettere una sezione critica definita all'interno di ntdll.dll. I blocchi privati non possono essere usati tra DLL.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo della sezione critica.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato
  • Parametro 4  - Non usato

Informazioni aggiuntive
  • Livello di test:  Serrature
  • ID di arresto:  LOCK_PRIVATE
  • Arrestare il codice:  200NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Il blocco SRW non viene inizializzato.

Probabile causa

Questo arresto viene generato se un thread sta tentando di usare il blocco SRW (Param1) non inizializzato. $ kb: per ottenere la traccia dello stack corrente. Si tratta della posizione in cui viene usato il blocco SRW. Il blocco SRW deve essere inizializzato usando InitializeSRWLock prima di poterlo usare.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - SRW Lock
  • Parametro 2  - Non usato
  • Parametro 3  - Non usato
  • Parametro 4  - Non usato

Informazioni aggiuntive
  • Livello di test:  SRWLock
  • ID di arresto:  NOT_INITIALIZED
  • Arrestare il codice:  250NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Il blocco SRW è già inizializzato.

Probabile causa

Questo arresto viene generato se il blocco SRW (Param1) viene nuovamente inizializzato. Se il blocco SRW viene usato attivamente da altri thread, l'inizializzazione del blocco comporterà un comportamento imprevedibile dall'applicazione, inclusi blocchi e arresti anomali. La traccia dello stack di inizializzazione può mostrare un'acquisizione se il blocco SRW è stato inizializzato staticamente. $ kb: per ottenere la traccia dello stack corrente. Questo è il luogo in cui viene ri inizializzato il blocco SRW. $ dps Param3: per ottenere la traccia dello stack di inizializzazione del blocco SRW. Questa traccia dello stack può mostrare un'acquisizione se il blocco è stato inizializzato staticamente.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - SRW Lock
  • Parametro 2  - ThreadId del thread che inizializza il blocco SRW.
  • Parametro 3  - Indirizzo della traccia dello stack di inizializzazione. Usare l'indirizzo> dps <per verificare dove è stato inizializzato il blocco SRW.
  • Parametro 4  - Non usato

Informazioni aggiuntive
  • Livello di test:  SRWLock
  • ID di arresto:  ALREADY_INITIALIZED
  • Arrestare il codice:  250NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Acquire-Release non corrispondenti nel blocco SRW.

Probabile causa

Questo arresto viene generato se il blocco SRW (Param1) viene rilasciato con un'API di rilascio errata. Se il blocco SRW è stato acquisito per l'accesso condiviso e viene rilasciato usando l'API di rilascio esclusiva o il blocco SRW è stato acquisito per l'accesso esclusivo ed è in fase di rilascio usando l'API di rilascio condivisa. Ciò può comportare un comportamento imprevedibile dall'applicazione, inclusi blocchi e arresti anomali. $ kb: per ottenere la traccia dello stack corrente. Questo è il luogo in cui viene rilasciato il blocco SRW usando l'API errata. $ dps Param3: per ottenere la traccia dello stack di acquisizione del blocco SRW.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - SRW Lock
  • Parametro 2  - ThreadId del thread che ha acquisito il blocco SRW.
  • Parametro 3  - Indirizzo della traccia dello stack di acquisizione. Usare l'indirizzo> dps <per vedere dove è stato acquisito il blocco SRW.
  • Parametro 4  - Non usato

Informazioni aggiuntive
  • Livello di test:  SRWLock
  • ID di arresto:  MISMATCHED_ACQUIRE_RELEASE
  • Arrestare il codice:  250NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Il blocco SRW viene acquisito in modo ricorsivo dallo stesso thread.

Probabile causa

Questo arresto viene generato se il blocco SRW (Param1) viene acquisito in modo ricorsivo dallo stesso thread. Ciò comporta un deadlock e il thread blocca in modo indefinito. L'acquisizione ricorsiva di un blocco SRW in modalità esclusiva causerà un deadlock. L'acquisizione ricorsiva di un blocco SRW in modalità condivisa causerà un deadlock quando è presente un thread in attesa dell'accesso esclusivo. Si consideri l'esempio seguente: - Thread A acquisisce il blocco SRW in modalità condivisa - Thread B tenta di assegnare il blocco SRW in modalità esclusiva e attese - Thread A tenta di acquisire il blocco SRW in modalità condivisa ricorsivamente. Questa operazione avrà esito positivo finché non c'è un cameriere esclusivo (in questo caso B). Poiché i blocchi SRW non hanno la fame di writer, thread A attende il thread B. Ora, thread B è in attesa di Thread A che è inturno in attesa di Thread B causando un'attesa circolare e quindi un deadlock. $ kb: per ottenere la traccia dello stack corrente. Questo è il luogo in cui il blocco SRW viene acquisito ricorsivamente. $ dps Param2 : per ottenere la traccia dello stack per la prima acquisizione.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - SRW Lock
  • Parametro 2  - Indirizzo della prima traccia dello stack di acquisizione. Usare l'indirizzo> dps <per vedere dove è stato acquisito il blocco SRW.
  • Parametro 3  - Non usato
  • Parametro 4  - Non usato

Informazioni aggiuntive
  • Livello di test:  SRWLock
  • ID arresto:  RECURSIVE_ACQUIRE
  • Arrestare il codice:  250NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Il thread che sta chiudendo o viene terminato possiede un blocco SRW.

Causa probabile

Questo arresto viene generato se il thread (Param2) proprietario del blocco SRW (Param1) viene chiuso o terminato. In questo modo si verifica un blocco SRW orfano e i thread che tentano di acquisire questo blocco bloccano per un periodo illimitato. $ kb : per ottenere l'analisi dello stack corrente. In questo caso il thread viene chiuso o viene terminato. $ dps Param3: per ottenere il blocco SRW acquisire l'analisi dello stack.

Informazioni visualizzate da Application Verifier
  • Parametro 1  Blocco - SRW
  • Parametro 2  - ThreadId del thread che esce o viene terminato.
  • Parametro 3  - Indirizzo dell'analisi dello stack di acquisizione. Usare l'indirizzo> dps <per vedere dove è stato acquisito il blocco SRW.
  • Parametro 4  - Non usato

Informazioni aggiuntive
  • Livello di test:  SRWLock
  • ID arresto:  EXIT_THREAD_OWNS_LOCK
  • Arrestare il codice:  250NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Il blocco SRW rilasciato non è stato acquisito da questo thread.

Causa probabile

Questo arresto viene generato se il blocco SRW (Param1) viene rilasciato dal thread (Param2) che non ha acquisito il blocco. Ciò rappresenta una procedura di programmazione non valida che è difficile da ottenere correttamente e può portare a un comportamento imprevedibile dall'applicazione. $ kb : per ottenere l'analisi dello stack corrente. In questo caso il thread rilascia il blocco SRW che non è stato acquisito. $ dps Param4: per ottenere il blocco SRW acquisire l'analisi dello stack.

Informazioni visualizzate da Application Verifier
  • Parametro 1  Blocco - SRW
  • Parametro 2  - Current ThreadId.
  • Parametro 3  - ThreadId del thread che ha acquisito il blocco SRW.
  • Parametro 4  - Indirizzo dell'analisi dello stack di acquisizione. Usare l'indirizzo> dps <per vedere dove è stato acquisito il blocco SRW.

Informazioni aggiuntive
  • Livello di test:  SRWLock
  • ID arresto:  INVALID_OWNER
  • Arrestare il codice:  250NAN
  • Gravità:  Avviso
  • Errore monouso: 
  • Segnalazione errori:  Nessuno
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

La memoria liberata contiene un blocco SRW attivo.

Causa probabile

Questo arresto viene generato se l'indirizzo di memoria (Param1) liberato contiene un blocco SRW attivo ancora in uso. Ciò può comportare un comportamento imprevedibile da parte dell'applicazione, inclusi arresti anomali e blocchi. $ kb : per ottenere l'analisi dello stack corrente. Questa è la posizione in cui viene liberata la memoria che contiene un blocco SRW attivo. $ dps Param4: per ottenere il blocco SRW acquisire l'analisi dello stack.

Informazioni visualizzate da Application Verifier
  • Parametro 1  Blocco - SRW
  • Parametro 2  - Indirizzo della memoria liberata.
  • Parametro 3  - ThreadId del thread che ha acquisito il blocco SRW.
  • Parametro 4  - Indirizzo dell'analisi dello stack di acquisizione. Usare l'indirizzo> dps <per vedere dove è stato acquisito il blocco SRW.

Informazioni aggiuntive
  • Livello di test:  SRWLock
  • ID arresto:  IN_FREED_MEMORY
  • Arrestare il codice:  250NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

La DLL da scaricare contiene un blocco SRW attivo.

Causa probabile

Questo arresto viene generato se la DLL scaricata (Param2) contiene un blocco SRW attivo (Param1) ancora in uso. Ciò può comportare un comportamento imprevedibile da parte dell'applicazione, inclusi arresti anomali e blocchi. $ kb : per ottenere l'analisi dello stack corrente. Questa è la posizione in cui viene scaricata la DLL che contiene un blocco SRW attivo. $ du Param2 : per trovare il nome della DLL da scaricare. $ dps Param4: per ottenere il blocco SRW acquisire l'analisi dello stack.

Informazioni visualizzate da Application Verifier
  • Parametro 1  Blocco - SRW
  • Parametro 2  - Indirizzo del nome della DLL da scaricare. Usare du <address> per visualizzare il nome.
  • Parametro 3  - ThreadId del thread che ha acquisito il blocco SRW.
  • Parametro 4  - Indirizzo dell'analisi dello stack di acquisizione. Usare l'indirizzo> dps <per vedere dove è stato acquisito il blocco SRW.

Informazioni aggiuntive
  • Livello di test:  SRWLock
  • ID arresto:  IN_UNLOADED_DLL
  • Arrestare il codice:  250NAN
  • Gravità:  Avviso
  • Errore monouso: 
  • Segnalazione errori:  Nessuno
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Eccezione di handle non valida per l'analisi dello stack corrente.

Causa probabile

Questo arresto viene generato se la funzione nella parte superiore dello stack ha passato un handle non valido alle routine di sistema. In genere un comando kb semplice visualizzerà il valore dell'handle passato (deve essere uno dei parametri , in genere il primo). Se il valore è Null, questo è chiaramente errato. Se il valore sembra ok, è necessario usare l'estensione del debugger !htrace per ottenere una cronologia delle operazioni relative a questo valore di handle. Nella maggior parte dei casi è necessario che il valore di handle venga usato dopo essere stato chiuso.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Codice eccezione.
  • Parametro 2  - Record eccezione. Usare .exr per visualizzarlo.
  • Parametro 3  - Record di contesto. Usare .cxr per visualizzarlo.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Maniglie
  • ID di arresto:  INVALID_HANDLE
  • Arrestare il codice:  300NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Indice TLS non valido usato per la traccia dello stack corrente.

Probabile causa

Questo arresto viene generato se la funzione nella parte superiore dello stack ha passato un indice TLS non valido alle routine di sistema TLS. In genere un semplice comando kb rivelerà ciò che è sbagliato. Il bug tipico è presupporre un determinato valore per un indice TLS anziché chiamare TlsAlloc. Ciò può verificarsi pensando che si ottiene sempre il valore N, pertanto non è necessario chiamare TlsAlloc o più frequentemente a causa di una variabile non inizializzata.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indice TLS non valido.
  • Parametro 2  - Previsto parte inferiore dell'indice.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Maniglie
  • ID di arresto:  INVALID_TLS_VALUE
  • Arrestare il codice:  300NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Parametri non validi per la chiamata WaitForMultipleObjects.

Probabile causa

Questo arresto viene generato se la funzione nella parte superiore dello stack denominata WaitForMultipleObjects con NULL come indirizzo della matrice di handle da attendere o con zero come numero di handle. Un semplice comando kb visualizzerà la funzione che chiama in modo errato questa API.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo dell'oggetto gestisce il vettore.
  • Parametro 2  - Numero di handle.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Maniglie
  • ID di arresto:  INCORRECT_WAIT_CALL
  • Arrestare il codice:  300NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Handle NULL passato come parametro. È necessario usare un handle valido.

Probabile causa

Questo arresto viene generato se la funzione nella parte superiore dello stack ha passato un handle NULL alle routine di sistema.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Non usato.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Maniglie
  • ID di arresto:  NULL_HANDLE
  • Arrestare il codice:  300NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

In attesa di un handle di thread in DllMain.

Probabile causa

Questo arresto viene generato se il thread corrente è attualmente in esecuzione nel codice all'interno della funzione DllMain di una delle DLL caricate nel processo corrente e chiama WaitForSingleObjects o WaitForMultipleObjects per attendere un handle di thread nello stesso processo. Ciò comporta probabilmente un deadlock perché l'handle del thread non verrà segnalato a meno che il secondo thread non venga chiuso. Quando il secondo thread chiamerà ExitThread, tenterà di acquisire il blocco del caricatore DLL e quindi chiamare DllMain (DLL_THREAD_DETACH) per tutte le DLL nel processo corrente. Ma il blocco del caricatore è di proprietà del primo thread (quello in attesa sull'handle del thread) in modo che i due thread vengano deadlock.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Handle thread.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Maniglie
  • ID di arresto:  WAIT_IN_DLLMAIN
  • Arrestare il codice:  300NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Tipo di oggetto non corretto per handle.

Probabile causa

Questo arresto viene generato se il thread corrente chiama un'API con un handle a un oggetto con un tipo di oggetto non corretto. Ad esempio, la chiamata a SetEvent con un handle di semaforo come parametro genererà questa interruzione. Per eseguire il debug di questo arresto: $ kb : per visualizzare la traccia dello stack corrente. Il colpevole è probabilmente la DLL che sta chiamando in verifier.dll; $ du parameter2: per visualizzare il tipo effettivo dell'handle. Il valore handle è parametro1. Nell'esempio precedente verrà visualizzato: Semaphore. $ du parameter3: per visualizzare il tipo di oggetto previsto dall'API. Nell'esempio precedente questo nome sarà: Evento. $ !htrace parameter1 potrebbe essere utile perché visualizzerà la traccia dello stack per le operazioni di apertura/chiusura recenti su questo handle.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Handle value.
  • Parametro 2  - Nome tipo oggetto. Usare du per visualizzarlo
  • Parametro 3  - Nome del tipo di oggetto previsto. Usare du per visualizzarlo
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Maniglie
  • ID di arresto:  INCORRECT_OBJECT_TYPE
  • Arrestare il codice:  300NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Scarica la DLL che ha allocato l'indice TLS che non è stato liberato.

Probabile causa

Questo arresto viene generato se una DLL allocata a un indice TLS viene scaricato prima di liberare tale indice TLS. Per eseguire il debug di questa interruzione: $ du parameter3 - visualizzare il nome della DLL colpevole; $ .reload xxx.dll=parameter4 : ricaricare i simboli per la DLL colpevole (se necessario). xxx.dll è il nome della DLL visualizzata nel passaggio precedente; $ u parameter2 : disassemblare il codice allocato da TLS. Ciò deve puntare alla funzione allocata a TLS, ma si è dimenticato di liberarlo prima che la DLL sia stata scaricata.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indice TLS
  • Parametro 2  - Indirizzo del codice allocato dall'indice TLS.
  • Parametro 3  -Indirizzo  del nome DLL. Usare du per eseguire il dump.
  • Parametro 4  -Indirizzo  di base DLL.

Informazioni aggiuntive
  • Livello di test:  TLS
  • ID di arresto:  TLS_LEAK
  • Arrestare il codice:  350NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Struttura TLS del verificatore danneggiata.

Probabile causa

Questo arresto viene generato se le strutture del verificatore interno usate per archiviare lo stato degli slot TLS per il thread sono danneggiate. Molto probabilmente questo è dovuto a un certo danneggiamento casuale nel processo.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - INDIRIZZO TEB.
  • Parametro 2  - Previsto indirizzo TEB.
  • Parametro 3  - ID thread.
  • Parametro 4  - Previsto ID thread.

Informazioni aggiuntive
  • Livello di test:  TLS
  • ID di arresto:  CORRUPTED_TLS
  • Arrestare il codice:  350NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Uso di un indice TLS non valido.

Probabile causa

Questo arresto viene generato se viene usato un indice TLS non valido. Nella maggior parte dei casi, il codice usa ancora questo indice quando viene chiamato TlsFree. Ecco un esempio per il thread threadpool. T1: Dll carica e TlsAlloc T1: Callback coda T1: Callback in attesa/annullamento ignorato T1: TlsFree T2: Callback esegue e chiama TlsSetValue T1: Scarica dll

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indice TLS
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  TLS
  • ID di arresto:  INVALID_TLS_INDEX
  • Arrestare il codice:  350NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Liberare il blocco di memoria virtuale con dimensioni non valide o indirizzo iniziale.

Probabile causa

Questo arresto viene generato se il verificatore dell'app rileva un file VirtualFree o una DLL scaricata con un indirizzo di inizio o una dimensione non validi dell'allocazione della memoria. Nel caso di scaricamento della DLL, questo significa probabilmente un danneggiamento della memoria all'interno dell'elenco dll caricato. Per eseguire il debug di questa interruzione, esaminare la traccia dello stack corrente e l'indirizzo di memoria e le dimensioni che stanno per essere liberati e provare a determinare il motivo per cui non sono validi.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo di base allocazione.
  • Parametro 2  -Dimensioni dell'area  di memoria.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID di arresto:  INVALID_FREEMEM
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Chiamata all'allocazione virtuale non corretta.

Causa probabile

Questo arresto viene generato se il verificatore dell'app rileva una chiamata VirtualAlloc con un indirizzo iniziale o una dimensione non validi dell'allocazione di memoria. Per eseguire il debug di questa interruzione, esaminare l'analisi dello stack corrente (kb) e l'indirizzo di memoria e le dimensioni che stanno per essere allocati e provare a determinare il motivo per cui non sono validi.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Puntatore all'indirizzo di base di allocazione.
  • Parametro 2  - Puntatore alle dimensioni dell'area di memoria.
  • Parametro 3  - Non usato
  • Parametro 4  - Non usato

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  INVALID_ALLOCMEM
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Chiamata di visualizzazione mappa non corretta.

Causa probabile

Questo arresto viene generato se il verificatore dell'app rileva una chiamata MapViewOfFile con un indirizzo di base o una dimensione non validi del mapping. Per eseguire il debug di questa interruzione, esaminare l'analisi dello stack corrente (kb) e l'indirizzo e le dimensioni della memoria di cui si sta per eseguire il mapping e provare a determinare il motivo per cui non sono validi.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Puntatore al mapping dell'indirizzo di base.
  • Parametro 2  - Puntatore alle dimensioni della visualizzazione.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  INVALID_MAPVIEW
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Probe dell'indirizzo non valido.

Causa probabile

Questo arresto viene generato se il verificatore dell'app rileva una chiamata IsBadXXXPtr con un indirizzo non valido (ad esempio, un indirizzo in modalità kernel, anziché un normale indirizzo in modalità utente) per il buffer di memoria di cui eseguire il probe. Per eseguire il debug di questa interruzione esaminare l'analisi dello stack corrente (kb) e provare a determinare il motivo per cui il chiamante della funzione IsBadXXXPtr è finito con un indirizzo non valido. Molte volte, l'indirizzo è semplice falso, ad esempio un puntatore non inizializzato. MSDN Library elenca alcuni motivi per cui le applicazioni non devono usare le API IsBadXXXPtr: in un ambiente multitasking preemptive, è possibile che altri thread modificherebbero l'accesso del processo alla memoria testata. Il dereferenziamento dei puntatori potenzialmente non validi può disabilitare l'espansione dello stack in altri thread. Un thread che esaurisce lo stack, quando l'espansione dello stack è stata disabilitata, comporta la chiusura immediata del processo padre, senza informazioni di diagnostica o finestra di errore popup. I thread in un processo devono cooperare in modo tale che non liberare memoria che l'altro necessita. L'uso di questa funzione non nega la necessità di eseguire questa operazione. In caso contrario, l'applicazione potrebbe non riuscire in modo imprevedibile. Per tutti questi motivi, è consigliabile non usare mai queste API.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo iniziale.
  • Parametro 2  - Dimensioni del blocco di memoria.
  • Parametro 3  - Indirizzo non valido.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  PROBE_INVALID_ADDRESS
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Probe della memoria libera.

Causa probabile

Questo arresto viene generato se il verificatore dell'app rileva una chiamata IsBadXXXPtr per un'allocazione di memoria libera. Questo problema è molto negativo perché, in alcuni altri casi, questa memoria è già stata riutilizzata per un'altra allocazione. Poiché il percorso del codice corrente (kb) non è proprietario di tale memoria, potrebbe finire per danneggiare la memoria di qualcun altro, con effetti disastrosi. Per eseguire il debug di questa interruzione, esaminare l'analisi dello stack corrente (kb) e provare a determinare il motivo per cui il chiamante della funzione IsBadXXXPtr ha terminato il probe della memoria libera. L'indirizzo potrebbe essere fittizio (ad esempio un puntatore non inizializzato) o forse già liberato memoria. Se la memoria è già stata liberata da una delle API VirtualFree o UnmapViewOfFile, '!avrf -vs -a parameter3' cercherà un log di analisi dello stack dei percorsi di codice allocati/liberati da tale indirizzo e visualizzerà queste tracce dello stack, se disponibili. Ciò potrebbe mostrare l'analisi dello stack che ha liberato questa memoria. Più spesso, la memoria è un'allocazione heap già liberata. Per verificare tale possibilità, '!avrf -hp -a parameter3' cercherà un log di tracce dello stack dei percorsi di codice allocati/liberati da/all'heap e visualizzerà queste tracce dello stack, se disponibili. MSDN Library elenca alcuni motivi per cui le applicazioni non devono usare le API IsBadXXXPtr: in un ambiente multitasking preemptive, è possibile che altri thread modificherebbero l'accesso del processo alla memoria testata. Il dereferenziamento dei puntatori potenzialmente non validi può disabilitare l'espansione dello stack in altri thread. Un thread che esaurisce lo stack, quando l'espansione dello stack è stata disabilitata, comporta la chiusura immediata del processo padre, senza informazioni di diagnostica o finestra di errore popup. I thread in un processo devono cooperare in modo tale che non liberare memoria che l'altro necessita. L'uso di questa funzione non nega la necessità di eseguire questa operazione. In caso contrario, l'applicazione potrebbe non riuscire in modo imprevedibile. Per tutti questi motivi, è consigliabile non usare mai queste API.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo iniziale.
  • Parametro 2  - Dimensioni del blocco di memoria.
  • Parametro 3  - Indirizzo della pagina di memoria libera.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  PROBE_FREE_MEM
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Eseguire il probe di una pagina di protezione.

Causa probabile

Questo arresto viene generato se il verificatore dell'app rileva una chiamata IsBadXXXPtr per un'allocazione di memoria che contiene almeno un GUARD_PAGE. Questo problema è molto negativo perché è molto possibile che questa GUARD_PAGE sia la fine dello stack corrente di un thread. Come documentato in MSDN Library: il dereferenziamento dei puntatori potenzialmente non validi può disabilitare l'espansione dello stack in altri thread. Un thread che esaurisce lo stack, quando l'espansione dello stack è stata disabilitata, comporta la chiusura immediata del processo padre, senza informazioni di diagnostica o finestra di errore popup. Per eseguire il debug di questa interruzione, esaminare l'analisi dello stack corrente (kb) e provare a determinare il motivo per cui il chiamante della funzione IsBadXXXPtr ha terminato di eseguire il probe di un GUARD_PAGE. MSDN Library elenca alcuni motivi per cui le applicazioni non devono usare le API IsBadXXXPtr: in un ambiente multitasking preemptive, è possibile che altri thread modificherebbero l'accesso del processo alla memoria testata. Il dereferenziamento dei puntatori potenzialmente non validi può disabilitare l'espansione dello stack in altri thread. Un thread che esaurisce lo stack, quando l'espansione dello stack è stata disabilitata, comporta la chiusura immediata del processo padre, senza informazioni di diagnostica o finestra di errore popup. I thread in un processo devono cooperare in modo tale che non liberare memoria che l'altro necessita. L'uso di questa funzione non nega la necessità di eseguire questa operazione. In caso contrario, l'applicazione potrebbe non riuscire in modo imprevedibile. Per tutti questi motivi, è consigliabile non usare mai queste API.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo iniziale.
  • Parametro 2  - Dimensioni del blocco di memoria.
  • Parametro 3  - Indirizzo della pagina guard.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  PROBE_GUARD_PAGE
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Probe dell'indirizzo NULL.

Causa probabile

Questo arresto viene generato se il verificatore dell'app rileva una chiamata IsBadXXXPtr con un indirizzo NULL. Per eseguire il debug di questa interruzione esaminare l'analisi dello stack corrente (kb) e provare a determinare il motivo per cui il chiamante della funzione IsBadXXXPtr ha finito con l'indirizzo NULL. Questo è in genere il segno di un utente che non controlla il valore restituito di una delle funzioni di allocazione della memoria. Ad esempio, il codice seguente non è corretto: int main (void) { PVOID p; p = malloc (1024); Usare (p); ritorno 0; } void Use (PVOID p) { if (IsBadReadPtr (p)) { return; } // // p is safe to be used here. } Questo codice deve essere riscritto come segue: int main (void) { PVOID p; p = malloc (1024); if (NULL == p)) { return -1; } Usare (p); ritorno 0; } void Use (PVOID p) { // // p è sicuro da usare qui. } MSDN Library elenca alcuni motivi per cui le applicazioni non devono usare le API IsBadXXXPtr: in un ambiente multitasking preemptive, è possibile che altri thread modificherebbero l'accesso del processo alla memoria testata. Il dereferenziamento dei puntatori potenzialmente non validi può disabilitare l'espansione dello stack in altri thread. Un thread che esaurisce lo stack, quando l'espansione dello stack è stata disabilitata, comporta la chiusura immediata del processo padre, senza informazioni di diagnostica o finestra di errore popup. I thread in un processo devono cooperare in modo tale che non liberare memoria che l'altro necessita. L'uso di questa funzione non nega la necessità di eseguire questa operazione. In caso contrario, l'applicazione potrebbe non riuscire in modo imprevedibile. Per tutti questi motivi, è consigliabile non usare mai queste API.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Non usato.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  PROBE_NULL
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Probe del blocco di memoria con indirizzo iniziale o dimensione non validi.

Causa probabile

Questo arresto viene generato se il verificatore dell'app rileva una chiamata IsBadXXXPtr con un indirizzo iniziale non valido (ad esempio, un indirizzo in modalità kernel, anziché un normale indirizzo in modalità utente) o dimensioni non valide per il buffer di memoria di cui eseguire il probe. Per eseguire il debug di questa interruzione, esaminare l'analisi dello stack corrente (kb) e provare a determinare il motivo per cui il chiamante della funzione IsBadXXXPtr ha finito con un indirizzo o una dimensione non validi. Molte volte, l'indirizzo o le dimensioni sono fittizie, ad esempio variabili non inizializzate. MSDN Library elenca alcuni motivi per cui le applicazioni non devono usare le API IsBadXXXPtr: in un ambiente multitasking preemptive, è possibile che altri thread modificherebbero l'accesso del processo alla memoria testata. Il dereferenziamento dei puntatori potenzialmente non validi può disabilitare l'espansione dello stack in altri thread. Un thread che esaurisce lo stack, quando l'espansione dello stack è stata disabilitata, comporta la chiusura immediata del processo padre, senza informazioni di diagnostica o finestra di errore popup. I thread in un processo devono cooperare in modo tale che non liberare memoria che l'altro necessita. L'uso di questa funzione non nega la necessità di eseguire questa operazione. In caso contrario, l'applicazione potrebbe non riuscire in modo imprevedibile. Per tutti questi motivi, è consigliabile non usare mai queste API.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo iniziale.
  • Parametro 2  - Dimensioni del blocco di memoria.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  PROBE_INVALID_START_OR_SIZE
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Scaricamento della DLL con dimensioni non valide o indirizzo iniziale.

Causa probabile

Questo arresto viene generato se il verificatore dell'app rileva lo scaricamento di una DLL con un indirizzo iniziale o una dimensione non validi dell'intervallo di memoria DLL. Questo probabilmente significa un danneggiamento della memoria all'interno dell'elenco interno ntdll.dll DLL caricato.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - INDIRIZZO di base della memoria DLL.
  • Parametro 2  -  Dimensioni dell'intervallo di memoria DLL.
  • Parametro 3  - INDIRIZZO del nome DLL. Usare du per eseguire il dump.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  INVALID_DLL_RANGE
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Liberamento del blocco di memoria nell'intervallo di indirizzi dello stack del thread corrente.

Causa probabile

Questo arresto viene generato se il verificatore dell'app rileva un VirtualFree per un blocco di memoria che fa effettivamente parte dello stack del thread corrente (!). Per eseguire il debug di questo arresto, esaminare la traccia dello stack corrente (kb) e provare a capire perché la funzione denominata VirtualFree pensava che il blocco di memoria fosse allocato dinamicamente o mappato, ma che fosse effettivamente allocato dalla stack.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo di base allocazione.
  • Parametro 2  -Dimensioni dell'area  di memoria.
  • Parametro 3  - Stack low limit address (Stack low limit address).
  • Parametro 4  -Stack high limit address (Stack  high limit address).

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID di arresto:  FREE_THREAD_STACK_MEMORY
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Parametro FreeType errato per l'operazione VirtualFree.

Probabile causa

Questo arresto viene generato se il verificatore dell'app rileva un virtualFree con un valore non corretto per il parametro FreeType. Gli unici due valori accettabili per questo parametro sono MEM_DECOMMIT e MEM_RELEASE. Se VirtualFree viene chiamato con qualsiasi altro valore tranne questi due, VirtualFree non riuscirà a liberare la memoria. Per eseguire il debug di questa interruzione, esaminare la traccia dello stack corrente (kb): il chiamante di VirtualFree è probabilmente il colpevole.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  -Valore  errato utilizzato dall'applicazione.
  • Parametro 2  - Valore corretto previsto 1.
  • Parametro 3  - Valore corretto previsto 2.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID di arresto:  INVALID_FREE_TYPE
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Tentativo di liberare il blocco di memoria virtuale già gratuito.

Probabile causa

Questo arresto viene generato se il verificatore dell'app rileva un oggetto VirtualFree per un indirizzo già gratuito. Per eseguire il debug di questo arresto, esaminare la traccia dello stack corrente (kb) e provare a determinare perché la memoria è già gratuita, ma l'applicazione sta tentando di liberarla di nuovo. '!avrf -vs -a parameter1' cercherà un log di tracce dello stack dei percorsi di codice allocati/liberati da tale indirizzo e visualizzerà queste tracce dello stack se disponibili. Questo potrebbe mostrare la traccia dello stack che ha liberato questa memoria.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  -Indirizzo  del blocco di memoria.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID di arresto:  MEM_ALREADY_FREE
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Parametro Size non corretto per l'operazione VirtualFree (MEM_RELEASE).

Probabile causa

Questo arresto viene generato se il verificatore dell'app rileva un oggetto VirtualFree (MEM_RELEASE) con un valore diverso da zero per il parametro dwSize. Quando si usa MEM_RELEASE , l'unico valore accettabile per questo parametro è 0. Se VirtualFree viene chiamato con qualsiasi altro valore tranne 0, VirtualFree non riuscirà a liberare la memoria. Per eseguire il debug di questa interruzione, esaminare la traccia dello stack corrente (kb): il chiamante di VirtualFree è probabilmente il colpevole.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Dimensioni non corrette usate dall'applicazione.
  • Parametro 2  - Previsto dimensioni corrette (0).
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID di arresto:  INVALID_FREE_SIZE
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Eccezione imprevista generata nella routine del punto di ingresso dll.

Probabile causa

Questo arresto viene generato se la funzione di ingresso di una DLL (DllMain) genera un'eccezione. Un esempio per cui questo è negativo è: se DllMain(DLL_PROCESS_ATTACH) genera un'eccezione, il caricatore DLL di Windows: - Catch e nascondi l'eccezione; - Scaricare la DLL senza chiamare dllMain(DLL_PROCESS_DETACH). Quindi in molti casi la DLL allocata già alcune risorse, quindi ha generato l'eccezione e non avrà la possibilità di rilasciare queste risorse in DllMain (DLL_PROCESS_DETACH). Per eseguire il debug di questa interruzione: $ du parameter1 : per visualizzare il nome della DLL; $ .exr parameter2 : per visualizzare le informazioni sull'eccezione; $ .cxr parameter3 seguito da kb : per visualizzare le informazioni sul contesto dell'eccezione e la traccia dello stack per il momento in cui è stata generata l'eccezione; $ parameter4 è l'indirizzo di una struttura di verifica interna e non ha alcun significato per la maggior parte degli utenti del verificatore.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - DLL name (use du to dump it).
  • Parametro 2  - Record eccezione. Usare .exr per visualizzarlo.
  • Parametro 3  - Record di contesto. Usare .cxr per visualizzarlo.
  • Parametro 4  - Descrittore dll di verifica

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID di arresto:  DLL_UNEXPECTED_EXCEPTION
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Eccezione imprevista generata nella funzione thread.

Probabile causa

Questo arresto viene generato se una funzione thread genera un'eccezione. Questo è male perché l'intero processo verrà ucciso. Per eseguire il debug di questa interruzione: $ parameter1 potrebbe essere significativo per il tipo di eccezione. Ad esempio, un codice di eccezione C0000005 significa violazione di accesso; $ .exr parameter2 : per visualizzare le informazioni sull'eccezione; $ .cxr parameter3 seguito da kb : per visualizzare le informazioni sul contesto dell'eccezione;

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Codice eccezione.
  • Parametro 2  - Record eccezione. Usare .exr per visualizzarlo.
  • Parametro 3  - Record di contesto. Usare .cxr per visualizzarlo.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  THREAD_UNEXPECTED_EXCEPTION
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Eccezione imprevista generata durante il probe della memoria.

Causa probabile

Questo arresto viene generato se viene generata un'eccezione durante una chiamata a IsBadXXXPtr. Ciò significa che il buffer di memoria di cui si esegue il probe non ha effettivamente la protezione presunta dal chiamante, o che la memoria è già stata liberata e così via. Vedere la discussione precedente su altri codici di arresto (PROBE_INVALID_ADDRESS, PROBE_FREE_MEM, PROBE_GUARD_PAGE, PROBE_NULL, PROBE_INVALID_START_OR_SIZE) per altri esempi del motivo per cui non è consigliabile usare le API IsBadXXXPtr. Per eseguire il debug di questa interruzione: $ parameter1 in genere sarà C0000005 e significa violazione di accesso; $ .exr parameter2 : per visualizzare le informazioni sull'eccezione; $ .cxr parameter3 seguito da kb : per visualizzare le informazioni sul contesto dell'eccezione e l'analisi dello stack al momento in cui è stata generata l'eccezione;

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Codice eccezione.
  • Parametro 2  - Record eccezione. Usare .exr per visualizzarlo.
  • Parametro 3  - Record di contesto. Usare .cxr per visualizzarlo.
  • Parametro 4  - Non usato

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  PROBE_UNEXPECTED_EXCEPTION
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Tentativo di reimpostare l'indirizzo NULL.

Causa probabile

Questo arresto viene generato se il verificatore dell'app rileva una chiamata VirtualFree (MEM_RESET) con un primo parametro NULL. MEM_RESET deve essere usato solo per la memoria già allocata, quindi NULL non è un primo parametro valido in questo caso.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Non usato.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  INVALID_MEM_RESET
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Liberamento del blocco di memoria heap nell'intervallo di indirizzi dello stack del thread corrente.

Causa probabile

Questo arresto viene generato se il verificatore dell'app rileva un heapFree, per un blocco di memoria che fa effettivamente parte dello stack del thread corrente (!). Per eseguire il debug di questa interruzione, esaminare l'analisi dello stack corrente (kb) e provare a capire perché la funzione che ha chiamato HeapFree pensava che il blocco di memoria fosse allocato o mappato in modo dinamico, ma che era effettivamente allocato dallo stack.

Informazioni visualizzate da Application Verifier
  • Parametro 1  -  Indirizzo di base di allocazione.
  • Parametro 2  - Dimensioni dell'area di memoria.
  • Parametro 3  -Stack low limit address.- Stack low limit address.
  • Parametro 4  -Stack high limit address.- Stack high limit address.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  FREE_THREAD_STACK_MEMORY_AS_HEAP
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Annullare il mapping dell'area di memoria all'interno dell'intervallo di indirizzi dello stack del thread corrente.

Causa probabile

Questo arresto viene generato se il verificatore dell'app rileva un oggetto UnmapViewOfFile, per un blocco di memoria che fa effettivamente parte dello stack del thread corrente (!). Per eseguire il debug di questa interruzione, esaminare l'analisi dello stack corrente (kb) e provare a capire perché la funzione che ha chiamato UnmapViewOfFile pensava che il blocco di memoria fosse allocato o mappato in modo dinamico, ma che era effettivamente allocato dallo stack.

Informazioni visualizzate da Application Verifier
  • Parametro 1  -  Indirizzo di base di allocazione.
  • Parametro 2  - Dimensioni dell'area di memoria.
  • Parametro 3  -Stack low limit address.- Stack low limit address.
  • Parametro 4  -Stack high limit address.- Stack high limit address.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  FREE_THREAD_STACK_MEMORY_AS_MAP
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Indirizzo RTL_RESOURCE non corretto.

Causa probabile

Questo arresto viene generato se l'applicazione sta tentando di usare NULL o un altro indirizzo non corretto (ad esempio, un indirizzo in modalità kernel) come indirizzo di un oggetto valido. RtlInitializeResource (NULL) è una chiamata API non corretta che attiverà questo tipo di arresto del verificatore. param1 è l'indirizzo non corretto usato e il colpevole si trova nell'analisi dello stack (visualizzarlo con kb).

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  INVALID_RESOURCE_ADDRESS
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Indirizzo della sezione critica non valido.

Causa probabile

Questo arresto viene generato se l'applicazione sta tentando di usare NULL o un altro indirizzo non corretto (ad esempio, un indirizzo in modalità kernel) come indirizzo di un oggetto valido. EnterCriticalSection(NULL) è una chiamata API non corretta che attiverà questo tipo di arresto del verificatore. param1 è l'indirizzo non corretto usato e il colpevole si trova nell'analisi dello stack (visualizzarlo con kb).

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  INVALID_CRITSECT_ADDRESS
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Tentare di eseguire codice in memoria non eseguibile.

Causa probabile

Questo arresto viene generato se l'applicazione sta tentando di eseguire codice da un indirizzo non eseguibile o gratuito. Per eseguire il debug di questa interruzione: $ u parameter2 - per separare il codice colpevole $ .exr parameter3 - per visualizzare le informazioni sull'eccezione; $ .cxr parameter4 seguito da kb : per visualizzare le informazioni sul contesto dell'eccezione e l'analisi dello stack per il momento in cui è stata generata l'eccezione.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo a cui si accede.
  • Parametro 2  - Codice che esegue l'accesso non valido.
  • Parametro 3  - Record eccezione. Usare .exr per visualizzarlo.
  • Parametro 4  - Record di contesto. Usare .cxr per visualizzarlo.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  THREAD_UNEXPECTED_EXCEPTION_CODE
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Eccezione imprevista generata durante l'inizializzazione del buffer di output.

Causa probabile

Questo arresto viene generato se viene generata un'eccezione durante l'inizializzazione di un buffer specificato come parametro di output per un'API Win32 o CRT. Ciò significa in genere che le dimensioni del buffer di output specificate non sono corrette. Per eseguire il debug di questa interruzione: $ .exr parameter3 - per visualizzare le informazioni sull'eccezione; $ .cxr parameter4 seguito da kb : per visualizzare le informazioni sul contesto dell'eccezione e l'analisi dello stack al momento in cui è stata generata l'eccezione.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo iniziale del buffer.
  • Parametro 2  - Dimensioni del buffer.
  • Parametro 3  - Record eccezione. Usare .exr per visualizzarlo.
  • Parametro 4  - Record di contesto. Usare .cxr per visualizzarlo.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  OUTBUFF_UNEXPECTED_EXCEPTION
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Eccezione imprevista quando si tenta di trovare le dimensioni del blocco heap.

Causa probabile

Questo arresto viene generato se viene generata un'eccezione durante la chiamata a HeapSize per un blocco heap che viene liberato. Ciò significa in genere che l'indirizzo del blocco heap specificato non è corretto o che l'heap è danneggiato. Per eseguire il debug di questa interruzione: $ .exr parameter3 - per visualizzare il record di eccezione; $ .cxr parameter4 seguito da kb : per visualizzare le informazioni sul contesto dell'eccezione e l'analisi dello stack al momento in cui è stata generata l'eccezione.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo del blocco heap liberato.
  • Parametro 2  Handle dell'heap .
  • Parametro 3  - Record eccezione. Usare .exr per visualizzarlo.
  • Parametro 4  - Record di contesto. Usare .cxr per visualizzarlo.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  SIZE_HEAP_UNEXPECTED_EXCEPTION
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Liberamento del blocco di memoria con indirizzo iniziale non valido.

Causa probabile

Questo arresto viene generato se il programma chiama VirtualFree (MEM_RELEASE) con un parametro lpAddress che non è l'indirizzo di base restituito dalla funzione VirtualAlloc o VirtualAllocEx quando l'area delle pagine è stata riservata; Per eseguire il debug di questa interruzione: $ kb : per visualizzare l'analisi dello stack corrente, che chiama VirtualFree. Il probabile colpevole è la DLL che chiama VirtualFree.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo del blocco di memoria liberato.
  • Parametro 2  - Previsto indirizzo del blocco di memoria corretto.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID di arresto:  INVALID_FREEMEM_START_ADDRESS
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Annullare il mapping del blocco di memoria con indirizzo iniziale non valido.

Probabile causa

Questo arresto viene generato se il programma chiama UnmapViewOfFile con un parametro lpBaseAddress non identico al valore restituito da una chiamata precedente alla funzione MapViewOfFile o MapViewOfFileEx. Per eseguire il debug di questa interruzione: $ kb : per visualizzare la traccia dello stack corrente, che chiama UnmapViewOfFile. Il probabile colpevole è la DLL che chiama UnmapViewOfFile.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo del blocco di memoria non mappato.
  • Parametro 2  - Previsto indirizzo del blocco di memoria corretto.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID di arresto:  INVALID_UNMAPVIEW_START_ADDRESS
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

eccezione imprevista generata nella funzione di callback threadpool.

Probabile causa

Questo arresto viene generato se una funzione di callback nel thread threadpool genera un'eccezione. Per eseguire il debug di questa interruzione: $ parameter1 potrebbe essere significativo per il tipo di eccezione. Ad esempio, un codice di eccezione C00000005 significa violazione di accesso. $ .exr parameter2 : per visualizzare le informazioni sull'eccezione. $ cxr parameter3 seguito da kb : per visualizzare le informazioni sul contesto dell'eccezione.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Codice eccezione
  • Parametro 2  - Record eccezione. Usare .exr per visualizzarlo
  • Parametro 3  - Record di contesto. Usare .cxr per visualizzarlo
  • Parametro 4  - Non usato

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID di arresto:  THREADPOOL_UNEXPECTED_EXCEPTION
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

codice in memoria non eseguibile

Probabile causa

Questo arresto viene generato se l'applicazione sta tentando di eseguire il codice da un indirizzo non eseguibile o gratuito. Per eseguire il debug di questa interruzione: $ u parameter2 - per annullare il montaggio del codice di colpa $ .exr parameter3 - per visualizzare le informazioni sull'eccezione $ cxr parameter4 seguite da kb - per visualizzare le informazioni sul contesto dell'eccezione e la traccia dello stack per il momento in cui è stata generata l'eccezione.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo a cui si accede
  • Parametro 2  - Codice che esegue l'accesso non valido
  • Parametro 3  - Record eccezione. Usare .exr per visualizzarlo.
  • Parametro 4  - Record di contesto. Usare .cxr per visualizzarlo.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID di arresto:  THREADPOOL_UNEXPECTED_EXCEPTION_CODE
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Creazione dell'heap eseguibile.

Probabile causa

Questo arresto viene generato se l'applicazione sta creando un heap eseguibile. Poiché l'operazione può rappresentare un rischio per la sicurezza,

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Non usato.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID di arresto:  EXECUTABLE_HEAP
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Allocazione della memoria eseguibile.

Probabile causa

Questo arresto viene generato se l'applicazione alloca memoria eseguibile. Poiché l'operazione può rappresentare un rischio per la sicurezza,

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  -Protezione  pagina specificata dal chiamante.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Memoria
  • ID arresto:  EXECUTABLE_MEMORY
  • Arrestare il codice:  600NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Tentare di eseguire codice in memoria non eseguibile (prima probabilità).

Causa probabile

Questo arresto viene generato se l'applicazione sta tentando di eseguire codice da un indirizzo non eseguibile o gratuito. Per eseguire il debug di questa interruzione: $ u parameter2 - per separare il codice colpevole $ .exr parameter3 - per visualizzare le informazioni sull'eccezione; $ .cxr parameter4 seguito da kb : per visualizzare le informazioni sul contesto dell'eccezione e l'analisi dello stack per il momento in cui è stata generata l'eccezione.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo a cui si accede.
  • Parametro 2  - Codice che esegue l'accesso non valido.
  • Parametro 3  - Record eccezione. Usare .exr per visualizzarlo.
  • Parametro 4  - Record di contesto. Usare .cxr per visualizzarlo.

Informazioni aggiuntive
  • Livello di test:  Eccezioni
  • ID arresto:  FIRST_CHANCE_ACCESS_VIOLATION_CODE
  • Arrestare il codice:  650NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

La priorità di questo thread threadpool è stata modificata.

Causa probabile

Questo arresto viene generato se la priorità del thread viene modificata quando viene restituita al threadpool.

Informazioni visualizzate da Application Verifier
  • Formato:  -  Threadpool thread (%x) che ha eseguito callback (%p) ha una priorità di thread modificata (%i -> %i)
  • Parametro 1  Funzione - Callback.
  • Parametro 2  - Contesto.
  • Parametro 3  - Threadpool Analisi dello stack di allocazione di oggetti, usare dps per eseguire il dump.
  • Parametro 4  - Priorità corrente.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID arresto:  INCONSISTENT_PRIORITY
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

L'affinità di questo thread threadpool è stata modificata.

Causa probabile

Questo arresto viene generato se l'affinità del thread viene modificata quando viene restituita al threadpool.

Informazioni visualizzate da Application Verifier
  • Formato:  Il thread - threadpool (%x) che ha eseguito il callback (%p) ha una maschera di affinità thread modificata (%p -> %p)
  • Parametro 1  Funzione - Callback.
  • Parametro 2  - Contesto.
  • Parametro 3  - Threadpool Analisi dello stack di allocazione di oggetti, usare dps per eseguire il dump.
  • Parametro 4  - Affinità corrente.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID arresto:  INCONSISTENT_AFFINITY_MASK
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Msg non elaborato nel pool msg del thread corrente.

Causa probabile

Questo arresto viene generato se un messaggio lasciato come non elaborato quando questo thread del pool di thread viene restituito al pool. È pericoloso perché verrà elaborato in un contesto completamente diverso. Usare !avrf -tp <Param4> per visualizzare i messaggi pubblicati in questo thread.

Informazioni visualizzate da Application Verifier
  • Formato:  - threadpool thread (%x) dopo l'esecuzione del callback (%p) contiene un messaggio di finestra in sospeso (%x: %x)
  • Parametro 1  Funzione - Callback.
  • Parametro 2  - Contesto.
  • Parametro 3  - Threadpool Analisi dello stack di allocazione di oggetti, usare dps per eseguire il dump.
  • Parametro 4  - Threadpool thread id. Usare !avrf -tp <threadid> per visualizzare i messaggi inviati a questo thread.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID arresto:  ORPHANED_THREAD_MESSAGE
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

La finestra non chiusa appartiene al thread corrente.

Causa probabile

Questo arresto viene generato se una finestra viene mantenuta attiva quando questo thread del threadpool viene restituito al pool.

Informazioni visualizzate da Application Verifier
  • Formato:  -  threadpool thread (%x) che ha eseguito Callback (%p) ha hwnd valido (%x: %s) che potrebbe ricevere messaggi
  • Parametro 1  Funzione - Callback.
  • Parametro 2  - Contesto.
  • Parametro 3  - Threadpool Analisi dello stack di allocazione di oggetti, usare dps per eseguire il dump.
  • Parametro 4  - Threadpool thread id.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID arresto:  ORPHANED_THREAD_WINDOW
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

ExitThread() in un thread threadpool.

Probabile causa

Questo arresto viene generato se ExitThread viene chiamato in un thread threadpool. È vietato perché farà in modo che il sistema non sia instabile. Causerà la perdita di risorse, il blocco o l'av.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Funzione callback.
  • Parametro 2  - Contesto.
  • Parametro 3  -Traccia  dello stack di allocazione dell'oggetto Threadpool, usare dps per eseguire il dump.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID di arresto:  ILLEGAL_THREAD_EXIT
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Il thread è in stato di rappresentazione quando viene restituito a un thread threadpool.

Probabile causa

Questo arresto viene generato se la funzione di chiamata cambia il token del thread per rappresentare un altro utente e dimentica di ripristinarlo prima di tornare al threadpool.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Funzione callback.
  • Parametro 2  - Contesto.
  • Parametro 3  -Traccia  dello stack di allocazione dell'oggetto Threadpool, usare dps per eseguire il dump.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID di arresto:  THREAD_IN_IMPERSONATION
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Una funzione che richiede un thread persistente viene chiamato.

Probabile causa

Alcune API di Microsoft Windows devono essere chiamate all'interno di un thread dedicato o persistente. Nel threadpool è in genere consigliabile evitare l'uso dell'archiviazione locale del thread e l'accodamento di chiamate asincrone che richiedono un thread persistente, ad esempio la funzione RegNotifyChangeKeyValue. Tali funzioni possono tuttavia essere accodate a un thread di lavoro persistente usando QueueUserWorkItem con l'opzione WT_EXECUTEINPERSISTENTTHREAD. Un kb nel debugger visualizzerà il chiamante.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Funzione callback.
  • Parametro 2  - Contesto.
  • Parametro 3  -Traccia  dello stack di allocazione dell'oggetto Threadpool, usare dps per eseguire il dump.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID di arresto:  PERSISTED_THREAD_NEEDED
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Il thread è in stato di transazione sporca.

Probabile causa

Questo arresto viene generato se la funzione di chiamata ha dimenticato di chiudere o reimpostare l'handle di transazione corrente.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Funzione callback.
  • Parametro 2  - Contesto.
  • Parametro 3  -Traccia  dello stack di allocazione dell'oggetto Threadpool, usare dps per eseguire il dump.
  • Parametro 4  - Handle delle transazioni.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID di arresto:  DIRTY_TRANSACTION_CONTEXT
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Questo stato di threadpool ha chiamate CoInit e CoUnInit non bilanciate.

Probabile causa

Questo arresto viene generato se la funzione di chiamata chiama CoInit e CoUnInit non bilanciata.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Funzione callback.
  • Parametro 2  - Contesto.
  • Parametro 3  -Traccia  dello stack di allocazione dell'oggetto Threadpool, usare dps per eseguire il dump.
  • Parametro 4  - Bilanciato Numero di chiamate.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID di arresto:  DIRTY_COM_STATE
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

I parametri per l'oggetto timer sono incoerenti. Il periodo deve essere 0 quando viene specificato WT_EXECUTEONLYONCE quando si crea il timer

Probabile causa

Questo arresto viene generato se il periodo per segnalare il timer non è zero quando il timer è impostato per segnalare una sola volta con il flag di WT_EXECUTEONLYONCE

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Periodo specificato.
  • Parametro 2  - Flag specificati.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID arresto:  INCONSISTENT_TIMER_PARAMS
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Il blocco del caricatore è stato mantenuto dal thread del pool di thread all'interno del callback.

Causa probabile

Questo arresto viene generato se il blocco del caricatore viene mantenuto all'interno del callback e non viene rilasciato quando il thread viene restituito al threadpool.

Informazioni visualizzate da Application Verifier
  • Parametro 1  Funzione - Callback.
  • Parametro 2  - Contesto.
  • Parametro 3  - Threadpool Analisi dello stack di allocazione di oggetti, usare dps per eseguire il dump.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID arresto:  LOADER_LOCK_HELD
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

La lingua preferita viene impostata dal thread threadpool all'interno del callback.

Causa probabile

Questo arresto viene generato se la lingua preferita viene impostata all'interno del callback e non viene cancellata quando il thread viene restituito al threadpool.

Informazioni visualizzate da Application Verifier
  • Parametro 1  Funzione - Callback.
  • Parametro 2  - Contesto.
  • Parametro 3  - Threadpool Analisi dello stack di allocazione di oggetti, usare dps per eseguire il dump.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID arresto:  PREFERRED_LANGUAGES_SET
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

La priorità in background viene impostata dal thread threadpool all'interno del callback.

Causa probabile

Questo arresto viene generato se la priorità in background viene impostata all'interno del callback e non viene disabilitata quando il thread viene restituito al threadpool.

Informazioni visualizzate da Application Verifier
  • Parametro 1  Funzione - Callback.
  • Parametro 2  - Contesto.
  • Parametro 3  - Threadpool Analisi dello stack di allocazione di oggetti, usare dps per eseguire il dump.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID arresto:  BACKGROUND_PRIORITY_SET
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

TerminateThread() in un thread di threadpool.

Causa probabile

Questo arresto viene generato se TerminateThread viene chiamato in un thread di threadpool. Non è consentito perché renderà il sistema instabile. Causerà perdite di risorse, blocco o av.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Non usato.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  Threadpool
  • ID arresto:  ILLEGAL_THREAD_TERMINATION
  • Arrestare il codice:  700NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Lo stack è stato spostato quando l'operazione di I/O asincrona è in sospeso.

Causa probabile

Questo arresto viene generato se l'applicazione ha emesso un'operazione di I/O che usa una variabile dello stack e non ha aspettato il completamento dell'I/O, causando così il danneggiamento dello stack. Per eseguire il debug di questa interruzione: $ dps parameter4 per visualizzare l'analisi dello stack al momento dell'emissione dell'I/O. Parameter1 indica l'indirizzo basato sullo stack e il parametro3 il thread che ha emesso l'I/O.

Informazioni visualizzate da Application Verifier
  • Parametro 1  - Indirizzo della variabile stack usata nell'I/O.
  • Parametro 2  - Puntatore dello stack corrente.
  • Parametro 3  - Thread originale che ha emesso l'I/O.
  • Parametro 4  - Stack Trace al momento dell'emissione dell'I/O.

Informazioni aggiuntive
  • Livello di test:  I/O
  • ID arresto:  ASYNCIO_STACK_UNWIND
  • Arrestare il codice:  800NAN
  • Gravità:  Errore
  • Errore monouso: 
  • Segnalazione errori:  Pausa
  • Log to file (Log to file):  Sì
  • Crea backtrace:  Sì

Lo stack è stato danneggiato quando l'operazione di I/O asincrona è in sospeso.

Probabile causa

Questo arresto viene generato se l'applicazione ha rilasciato un'operazione di I/O che usa una variabile stack e non ha aspettato che l'I/O venga completato, causando così il danneggiamento dello stack. Per eseguire il debug di questa interruzione: $ dps parameter4 per visualizzare la traccia dello stack quando è stato emesso l'I/O. Parameter1 indica l'indirizzo basato sullo stack e il parametro3 il thread che ha rilasciato l'I/O.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo della variabile stack usata nell'I/O.
  • Parametro 2  -Puntatore  dello stack corrente.
  • Parametro 3  - Thread originale che ha rilasciato l'I/O.
  • Parametro 4  -Stack  Trace quando è stato rilasciato l'I/O.

Informazioni aggiuntive
  • Livello di test:  I/O
  • ID di arresto:  ASYNCIO_CORRUPTED_STACK
  • Arrestare il codice:  800NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Uso di un indirizzo libero in un'operazione di I/O in sospeso.

Probabile causa

Questo arresto viene generato se l'applicazione ha rilasciato un'operazione di I/O e libera la memoria usata nell'I/O prima del completamento dell'I/O, causando così il danneggiamento della memoria e così via. Per eseguire il debug di questa interruzione: $ dps parameter4 per visualizzare la traccia dello stack quando è stato emesso l'I/O. Parameter1 indica l'indirizzo usato nell'I/O. Parameter2 indica che l'indirizzo viene liberato e parametro3 il thread che ha rilasciato l'I/O.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo usato nell'I/O.
  • Parametro 2  - Indirizzo liberato.
  • Parametro 3  - Thread originale che ha rilasciato l'I/O.
  • Parametro 4  -Stack  Trace quando è stato rilasciato l'I/O.

Informazioni aggiuntive
  • Livello di test:  I/O
  • ID di arresto:  FREED_ADDRESS_IN_PENDINGIO
  • Arrestare il codice:  800NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Un blocco di stato di I/O (OVERLAPPED) viene riutilizzato mentre la richiesta di I/O associata è ancora in sospeso.

Probabile causa

Questo arresto viene generato se l'applicazione ha riutilizzato un blocco di stato di I/O (OVERLAPPED) mentre una richiesta di I/O usando tale blocco di stato di I/O (OVERLAPPED) è ancora in sospeso. Per eseguire il debug di questa interruzione: $ dps parameter3 per visualizzare la traccia dello stack quando è stato rilasciato l'I/O originale. Parameter1 indica l'indirizzo usato nell'I/O e nel parametro2 il thread che ha rilasciato l'I/O.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo del blocco di stato di I/O (OVERLAPPED).
  • Parametro 2  - Thread originale che ha rilasciato l'I/O.
  • Parametro 3  -Stack  Trace quando è stato rilasciato l'I/O.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  I/O
  • ID di arresto:  REUSED_IOSTATUS_BLOCK
  • Arrestare il codice:  800NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Uso di un flag non supportato, FILE_ATTRIBUTE_NOT_CONTENT_INDEXED in CreateFile

Probabile causa

Versione precedente di MSDN documentata erroneamente CreateFile come supporto di FILE_ATTRIBUTE_NOT_CONTENT_INDEXED. Se questo flag deve essere impostato usando altre funzioni API, ad esempio SetFileAttributes. $ ln Parameter1 per trovare il chiamante di CreateFile.

Informazioni visualizzate dal verificatore dell'applicazione
  • Formato:  -  CreateFile durante la scrittura di %hs%ws con flag %08x %08x %08x
  • Parametro 1  - Indirizzo restituito.
  • Parametro 2  - Non usato.
  • Parametro 3  - Non usato.
  • Parametro 4  - Non usato.

Informazioni aggiuntive
  • Livello di test:  I/O
  • ID di arresto:  USING_BAD_CREATEFILE_FLAG
  • Arrestare il codice:  800NAN
  • Gravità:  Avviso
  • Errore una sola volta: 
  • Report degli errori:  Nessuno
  • Log to file:  Sì
  • Creare backtrace:  Sì

Un'allocazione dell'heap è stata perdita.

Probabile causa

Questo arresto viene generato se la dll proprietario dell'allocazione è stata scaricata dinamicamente durante la proprietà delle risorse.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo dell'allocazione in perdita. Eseguire !heap -p -a <indirizzo> per ottenere informazioni aggiuntive sull'allocazione.
  • Parametro 2  - Indirizzo alla traccia dello stack di allocazione. Eseguire l'indirizzo> dps per visualizzare lo stack di allocazione<.
  • Parametro 3  - Indirizzo del nome della dll proprietario. Eseguire du <address> per leggere il nome della dll.
  • Parametro 4  - Base della dll proprietario. Eseguire il ricaricamento <dll_name> = <indirizzo> per ricaricare la dll del proprietario. Usare 'lm' per ottenere altre informazioni sui moduli caricati e scaricati.

Informazioni aggiuntive
  • Livello di test:  Perdita
  • ID di arresto:  ALLOCAZIONE
  • Arrestare il codice:  900NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Un HANDLE è stato interrotto.

Probabile causa

Questo arresto viene generato se la dll proprietario dell'handle è stata scaricata dinamicamente durante la proprietà delle risorse. Per eseguire il debug di questo arresto: eseguire !htrace parameter1 per ottenere informazioni aggiuntive sull'handle.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Valore dell'handle in perdita. Eseguire l'handle> !htrace <per ottenere informazioni aggiuntive sull'handle se la traccia di handle è abilitata.
  • Parametro 2  - Indirizzo alla traccia dello stack di allocazione. Eseguire l'indirizzo> dps per visualizzare lo stack di allocazione<.
  • Parametro 3  - Indirizzo del nome della dll proprietario. Eseguire du <address> per leggere il nome della dll.
  • Parametro 4  - Base della dll proprietario. Eseguire il ricaricamento <dll_name> = <indirizzo> per ricaricare la dll del proprietario. Usare 'lm' per ottenere altre informazioni sui moduli caricati e scaricati.

Informazioni aggiuntive
  • Livello di test:  Perdita
  • ID di arresto:  GESTIRE
  • Arrestare il codice:  900NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

È stata rilevata una perdita di HKEY.

Probabile causa

Questo arresto viene generato se la dll proprietario della chiave del Registro di sistema è stata scaricata dinamicamente durante la proprietà delle risorse.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Valore dell'HKEY scaduto.
  • Parametro 2  - Indirizzo alla traccia dello stack di allocazione. Eseguire l'indirizzo> dps per visualizzare lo stack di allocazione<.
  • Parametro 3  - Indirizzo del nome della dll proprietario. Eseguire du <address> per leggere il nome della dll.
  • Parametro 4  - Base della dll proprietario. Eseguire il ricaricamento <dll_name> = <indirizzo> per ricaricare la dll del proprietario. Usare 'lm' per ottenere altre informazioni sui moduli caricati e scaricati.

Informazioni aggiuntive
  • Livello di test:  Perdita
  • ID di arresto:  REGISTRO
  • Arrestare il codice:  900NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Una prenotazione virtuale è stata interrotta.

Probabile causa

Questo arresto viene generato se la dll proprietario della prenotazione virtuale è stata scaricata dinamicamente durante la proprietà delle risorse.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  -Indirizzo  di prenotazione in perdita.
  • Parametro 2  - Indirizzo alla traccia dello stack di allocazione. Eseguire l'indirizzo> dps per visualizzare lo stack di allocazione<.
  • Parametro 3  - Indirizzo del nome della dll proprietario. Eseguire du <address> per leggere il nome della dll.
  • Parametro 4  - Base della dll proprietario. Eseguire il ricaricamento <dll_name> = <indirizzo> per ricaricare la dll del proprietario. Usare 'lm' per ottenere altre informazioni sui moduli caricati e scaricati.

Informazioni aggiuntive
  • Livello di test:  Perdita
  • ID di arresto:  VIRTUAL_RESERVATION
  • Arrestare il codice:  900NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Una BSTR è stata interrotta.

Probabile causa

Questo arresto viene generato se la dll proprietario di SysString è stata scaricata dinamicamente durante la proprietà delle risorse.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo del BSTR scaduto. Eseguire !heap -p -a <indirizzo> per ottenere informazioni aggiuntive sull'allocazione.
  • Parametro 2  - Indirizzo alla traccia dello stack di allocazione. Eseguire l'indirizzo> dps per visualizzare lo stack di allocazione<.
  • Parametro 3  - Indirizzo del nome della dll proprietario. Eseguire du <address> per leggere il nome della dll.
  • Parametro 4  - Base della dll proprietario. Eseguire il ricaricamento <dll_name> = <indirizzo> per ricaricare la dll del proprietario. Usare 'lm' per ottenere altre informazioni sui moduli caricati e scaricati.

Informazioni aggiuntive
  • Livello di test:  Perdita
  • ID di arresto:  SYSSTRING
  • Arrestare il codice:  900NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Non è stata registrata una notifica di alimentazione.

Probabile causa

Questo arresto viene generato se la dll registrata per la notifica di alimentazione ed è stata scaricata dinamicamente senza registrare.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo della registrazione della notifica di alimentazione.
  • Parametro 2  - Indirizzo alla traccia dello stack di registrazione. Eseguire l'indirizzo> dps per visualizzare lo stack di allocazione<.
  • Parametro 3  - Indirizzo del nome della dll proprietario. Eseguire du <address> per leggere il nome della dll.
  • Parametro 4  - Base della dll proprietario. Eseguire il ricaricamento <dll_name> = <indirizzo> per ricaricare la dll del proprietario. Usare 'lm' per ottenere altre informazioni sui moduli caricati e scaricati.

Informazioni aggiuntive
  • Livello di test:  Perdita
  • ID di arresto:  POWER_NOTIFICATION
  • Arrestare il codice:  900NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

È stata rilevata una perdita di allocazione COM.

Probabile causa

Questo arresto viene generato se la dll proprietario dell'allocazione COM è stata scaricata dinamicamente durante la proprietà delle risorse.

Informazioni visualizzate dal verificatore dell'applicazione
  • Parametro 1  - Indirizzo dell'allocazione COM persa. Eseguire !heap -p -a <indirizzo> per ottenere informazioni aggiuntive sull'allocazione.
  • Parametro 2  - Indirizzo alla traccia dello stack di allocazione. Eseguire l'indirizzo> dps per visualizzare lo stack di allocazione<.
  • Parametro 3  - Indirizzo del nome della dll proprietario. Eseguire du <address> per leggere il nome della dll.
  • Parametro 4  - Base della dll proprietario. Eseguire il ricaricamento <dll_name> = <indirizzo> per ricaricare la dll del proprietario. Usare 'lm' per ottenere altre informazioni sui moduli caricati e scaricati.

Informazioni aggiuntive
  • Livello di test:  Perdita
  • ID di arresto:  COM_ALLOCATION
  • Arrestare il codice:  900NAN
  • Gravità:  Errore
  • Errore una sola volta: 
  • Report degli errori:  Pausa
  • Log to file:  Sì
  • Creare backtrace:  Sì

Vedere anche

Verifica applicazioni - Codici e definizioni di arresto

Verifica applicazione - Panoramica

Verifica applicazioni - Funzionalità

Verifica applicazioni - Test delle applicazioni

Verifica applicazione - Test all'interno del verificatore di applicazioni

Verifica applicazione - Arresta il verifica dell'applicazione di debug

Verifica applicazioni - Domande frequenti