Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V této sadě testů jsou obsaženy následující kódy stop.
Nebezpečné volání TerminateThread.
Pravděpodobná příčinaToto zastavení se generuje, pokud je vlákno (ID vlákna parametr1) ukončeno explicitně pomocí TerminateThread.Tato funkce je velmi nebezpečná, protože zavádí poškození dat a zablokování (podle MSDN).
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Thread ID pro volajícího Terminatethread.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Nebezpečný
- ID zastavení: TERMINATE_THREAD_CALL
- Zastavte kód: 0x100
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Potenciální přetečení zásobníku v podmínkách nedostatku paměti.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud počáteční velikost potvrzení zásobníku vlákna je taková, že přetečení zásobníku může být vyvolána v podmínkách nedostatku paměti, pokud zásobník nelze rozšířit.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Nepoužívá se.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Nebezpečný
- ID zastavení: STACK_OVERFLOW
- Zastavte kód: 0x101
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Ukončete proces, který se volá, zatímco stále běží více vláken.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud vlákno volá ExitProcess, zatímco je spuštěno několik vláken. V takovém případě bude pro každé vlákno volán interně TerminateThread a to může způsobit zablokování nebo poškození dat.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Počet spuštěných vláken.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Nebezpečný
- ID zastavení: INVALID_EXIT_PROCESS_CALL
- Zastavte kód: 0x102
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
LoadLibrary se volá během knihovny DllMain.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud kód uvnitř knihovny DllMain volá LoadLibrary nebo FreeLibary. Je to chování zakázáno MSDN.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Dll Name (use du to dump).
- Parametr 2 - Dll základní adresa.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Nebezpečný
- ID zastavení: INVALID_LOAD_LIBRARY_CALL
- Zastavte kód: 0x103
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
FreeLibrary se volá během knihovny DllMain.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud kód uvnitř knihovny DllMain volá LoadLibrary nebo FreeLibary. Je to chování zakázáno MSDN.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Dll Name (use du to dump).
- Parametr 2 - Dll základní adresa.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Nebezpečný
- ID zastavení: INVALID_FREE_LIBRARY_CALL
- Zastavte kód: 0x104
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
SetProcessWorkingSetSize se volá s MinimumWorkingSetSize = 0xFFFFFFFF.
Pravděpodobná příčinaPoužijte MinimumWorkingSetSize = (SIZE_T) -1.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Nepoužívá se.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Nebezpečný
- ID zastavení: INVALID_MINIMUM_PROCESS_WORKING_SIZE
- Zastavte kód: 0x105
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
SetProcessWorkingSetSize se volá s MaximumWorkingSetSize = 0xFFFFFFFF.
Pravděpodobná příčinaPoužijte hodnotu MaximumWorkingSetSize = (SIZE_T) -1.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Nepoužívá se.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Nebezpečný
- ID zastavení: INVALID_MAXIMUM_PROCESS_WORKING_SIZE
- Zastavte kód: 0x106
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
SetProcessWorkingSetSizeEx je volán s MinimumWorkingSetSize = 0xFFFFFFFF.
Pravděpodobná příčinaPoužijte MinimumWorkingSetSize = (SIZE_T) -1.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Nepoužívá se.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Nebezpečný
- ID zastavení: INVALID_MINIMUM_PROCESS_WORKING_SIZE_EX
- Zastavte kód: 0x107
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
SetProcessWorkingSetSizeEx je volán s MaximumWorkingSetSize = 0xFFFFFFFF.
Pravděpodobná příčinaPoužijte hodnotu MaximumWorkingSetSize = (SIZE_T) -1.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Nepoužívá se.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Nebezpečný
- ID zastavení: INVALID_MAXIMUM_PROCESS_WORKING_SIZE_EX
- Zastavte kód: 0x108
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Vlákno nemůže vlastnit kritický oddíl.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud je vlákno (ID vlákna parametr1) ukončeno, pozastaveno nebo je ve stavu (pracovní vlákno dokončilo pracovní položku), ve kterém nemůže obsahovat kritický oddíl. Aktuální vlákno je viníkem. K ladění tohoto zastavení použijte následující příkazy ladicího programu:
- kb – získání aktuálního trasování zásobníku Pokud je aktuální vlákno vlastníkem kritické části, pravděpodobně volá ExitThread. Aktuální vlákno by mělo před ukončením uvolnit kritickou část. Pokud aktuální vlákno volá TerminateThread nebo SuspendThread, nemělo by to udělat pro vlákno, které obsahuje kritický oddíl.
- !cs -s <parametr> – informace o výpisu paměti o této kritické části.
- ln <parametr2> – zobrazení symbolů v blízkosti adresy kritické části. To by mělo pomoct identifikovat nevracenou kritickou část.
- dps <parameter4> – k výpisu trasování zásobníku pro inicializaci tohoto kritického oddílu.
- Parametr 1 - THREAD ID.
- Parametr 2 - Kritická adresa oddílu.
- Parametr 3 - Kritická adresa informací o ladění oddílu.
- Parametr 4 - Kritické trasování zásobníku inicializace oddílu.
- Testovací vrstva: Zámky
- ID zastavení: EXIT_THREAD_OWNS_LOCK
- Zastavte kód: 0x200
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Uvolňování knihovny DLL obsahující aktivní kritickou část
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud knihovna DLL obsahuje globální proměnnou obsahující kritickou část a knihovna DLL je uvolněna, ale kritická část nebyla odstraněna. K ladění tohoto zastavení použijte následující příkazy ladicího programu:
- du <parameter3> - k výpisu názvu knihovny DLL vyčíslit.
- .reload dllname nebo .reload dllname = <parameter4> - to reload the symbols for that DLL.
- !cs -s <parametr1> – informace o výpisu paměti o této kritické části.
- ln <parametr1> – zobrazení symbolů v blízkosti adresy kritického oddílu. To by mělo pomoct identifikovat nevracenou kritickou část.
- dps <parameter2> – pro výpis trasování zásobníku pro tuto inicializaci kritického oddílu.
- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 - Kritické trasování zásobníku inicializace oddílu.
- Parametr 3 - DLL name address.
- Parametr 4 - DLL základní adresa.
- Testovací vrstva: Zámky
- ID zastavení: LOCK_IN_UNLOADED_DLL
- Zastavte kód: 0x201
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Uvolnění bloku haldy obsahující aktivní kritický oddíl
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud přidělení haldy obsahuje kritický oddíl, přidělení se uvolní a kritický oddíl se neodstraní. K ladění tohoto zastavení použijte následující příkazy ladicího programu:
- !cs -s <parametr1> – informace o výpisu paměti o této kritické části.
- ln <parametr1> – zobrazení symbolů v blízkosti adresy kritického oddílu. To by mělo pomoct identifikovat nevracenou kritickou část.
- dps <parameter2> – pro výpis trasování zásobníku pro tuto inicializaci kritického oddílu.
- < parametr3> a <parametr4> vám můžou pomoct pochopit, kde byl přidělen tento blok haldy (velikost přidělení je pravděpodobně významná).
- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 - Kritické trasování zásobníku inicializace oddílu.
- Parametr 3 - Adresa bloku haldy.
- Parametr 4 - Velikost bloku haldy.
- Testovací vrstva: Zámky
- ID zastavení: LOCK_IN_FREED_HEAP
- Zastavte kód: 0x202
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Dvojitě inicializovaný nebo poškozený kritický oddíl
Pravděpodobná příčinaTato stopa se obvykle vygeneruje v případě, že se kritická část inicializovala vícekrát. V tomto případě jsou parametr3 a parametr4 adresy trasování zásobníku pro dvě z těchto inicializací. Někdy jindy je možné tuto stopu získat, pokud je poškozena kritická část nebo její struktura informací ladění. V tomto druhém případě je možné, že parametr3 a parametr4 jsou neplatné a zbytečné. Ladění tohoto zastavení:
- !cs -s -d <parametr2> – informace o výpisu paměti o této kritické části.
- ln <parametr1> – zobrazení symbolů v blízkosti adresy kritického oddílu. To může pomoct identifikovat kritickou část, pokud se jedná o globální proměnnou.
- dps <parameter3> a dps <parameter4> – k identifikaci dvou cest kódu pro inicializaci této kritické části.
- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 - Address of the debug information structure found in the active list.
- Parametr 3 - První inicializační trasování zásobníku
- Parametr 4 - Druhé trasování inicializačního zásobníku.
- Testovací vrstva: Zámky
- ID zastavení: LOCK_DOUBLE_INITIALIZE
- Zastavte kód: 0x203
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Volné paměti obsahující aktivní kritickou část.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud byla uvolněna paměť obsahující kritický oddíl, ale kritická část nebyla odstraněna pomocí deleteCriticalSection. K ladění tohoto zastavení použijte následující příkazy ladicího programu:
- !cs -s -d <parametr2> – informace o výpisu paměti o této kritické části.
- dps <parameter3> – k identifikaci cesty kódu pro inicializaci této kritické části.
Ve většině případů ověřovatel zámku zjistí okamžitě nevracené kritické části obsažené v přidělení haldy, rozsahu dll, přidělení virtuální paměti nebo mapViewOfFile mapované oblasti paměti a v těchto případech dochází k různým zastavením. Takže pro tuto ověřitelní zastavení zbývá velmi málo případů. Zámek musí být v rozsahu paměti uvolněným kódem v režimu jádra nebo uvolněným křížovým procesem rozhraními API, jako je VirtualFreeEx. Nejčastěji se k tomuto zastavení dochází, pokud předchozí zastavení (např. LOCK_IN_FREED_HEAP nebo LOCK_IN_UNLOADED_DLL) pokračovalo stisknutím klávesy g v konzole ladicího programu.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 - Kritická adresa informací o ladění oddílu.
- Parametr 3 - Kritické trasování zásobníku inicializace oddílu.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Zámky
- ID zastavení: LOCK_IN_FREED_MEMORY
- Zastavte kód: 0x204
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Poškozená kritická část.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud pole DebugInfo kritického oddílu ukazuje na uvolněnou paměť. V seznamu aktivních důležitých oddílů se obvykle nachází jiná platná struktura DebugInfo. Bez poškození by měly být dva ukazatele identické. K ladění tohoto zastavení použijte následující příkazy ladicího programu:
- !cs -s -d <parametr3> – výpis informací o tomto kritickém oddílu na základě aktuálního obsahu struktury informací ladění nalezené v aktivním seznamu (tato struktura je zřídka poškozená, takže obvykle jsou tyto informace důvěryhodné).
- !cs -s <parametr1> – výpis informací o tomto kritickém oddílu na základě aktuálního obsahu struktury kritického oddílu (struktura je již poškozena, takže někdy tyto informace nejsou důvěryhodné).
- dps <parameter4> – k identifikaci cesty kódu pro inicializaci této kritické části. Vysuněte kritickou část na parametru adresy 1 a vyhledejte vzor poškození. S dobrými symboly pro ntdll.dl můžete použít následující příkazy:
- dt ntdll!_RTL_CRITICAL_SECTION LOCK_ADDRESS
- dt ntdll!_RTL_CRITICAL_SECTION_DEBUG DEBUG_ADDRESS
- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 - Neplatná adresa informací o ladění této kritické části.
- Parametr 3 - Adresa informací o ladění nalezených v aktivním seznamu.
- Parametr 4 - Inicializace trasování zásobníku
- Testovací vrstva: Zámky
- ID zastavení: LOCK_CORRUPTED
- Zastavte kód: 0x205
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Neplatné vlákno vlastníka kritického oddílu
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud je ID vlákna vlastníka v aktuálním kontextu neplatné. Ladění tohoto zastavení:
- !cs -s <parametr1> – informace o výpisu paměti o této kritické části.
- ln <parametr1> – zobrazení symbolů v blízkosti adresy kritického oddílu. To by mělo pomoct s identifikací kritické části.
- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 - Vlastní vlákno.
- Parametr 3 - Byl očekáván vlastnící vlákno.
- Parametr 4 - Kritická adresa informací o ladění oddílu.
- Testovací vrstva: Zámky
- ID zastavení: LOCK_INVALID_OWNER
- Zastavte kód: 0x206
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Neplatný počet rekurzí kritického oddílu
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud v aktuálním kontextu není platné pole počtu rekurzí struktury kritického oddílu. Ladění tohoto zastavení:
- !cs -s <parametr1> – informace o výpisu paměti o této kritické části.
- ln <parametr1> – zobrazení symbolů v blízkosti adresy kritického oddílu. To by mělo pomoct s identifikací kritické části.
- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 - Rekurzní počet.
- Parametr 3 - Očekávaný počet rekurzí.
- Parametr 4 - Kritická adresa informací o ladění oddílu.
- Testovací vrstva: Zámky
- ID zastavení: LOCK_INVALID_RECURSION_COUNT
- Zastavte kód: 0x207
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Odstranění kritického oddílu s neplatným počtem zámků
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud je kritický oddíl vlastněn vláknem, pokud je odstraněn nebo pokud je kritický oddíl neinicializován. Ladění tohoto zastavení:
- !cs -s <parametr1> – informace o výpisu paměti o této kritické části. Pokud je vlastnící vlákno 0, nebyl inicializován kritický oddíl.
- ln <parametr1> – zobrazení symbolů v blízkosti adresy kritického oddílu. To by mělo pomoct s identifikací kritické části.
- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 -Zamknout počet.
- Parametr 3 - Očekávaný počet zámků.
- Parametr 4 - Vlastní vlákno.
- Testovací vrstva: Zámky
- ID zastavení: LOCK_INVALID_LOCK_COUNT
- Zastavte kód: 0x208
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Kritická část je převolněna nebo poškozena.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud je kritická část vydána vícekrát, než ho získalo aktuální vlákno. Ladění tohoto zastavení:
- !cs -s <parametr1> – informace o výpisu paměti o této kritické části.
- !cs -s -d <parametr4> – informace o výpisu paměti o této kritické části.
- ln <parametr1> – zobrazení symbolů v blízkosti adresy kritického oddílu. To by mělo pomoct s identifikací kritické části.
- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 -Zamknout počet.
- Parametr 3 - Očekávaný počet zámků.
- Parametr 4 - Kritická adresa informací o ladění oddílu.
- Testovací vrstva: Zámky
- ID zastavení: LOCK_OVER_RELEASED
- Zastavte kód: 0x209
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Kritický oddíl není inicializován.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se kritický oddíl použije bez inicializace nebo po jeho odstranění. Ladění tohoto zastavení:
- ln <parametr1> – zobrazení symbolů v blízkosti adresy kritického oddílu. To by mělo pomoct s identifikací kritické části.
- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 - Kritická adresa informací o ladění oddílu.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Zámky
- ID zastavení: LOCK_NOT_INITIALIZED
- Zastavte kód: 0x210
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Kritická část je již inicializována.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud je aktuální vlákno znovu inicializováno kritickým oddílem. Ladění tohoto zastavení:
- !cs -s <parametr1> nebo !cs -s -d parametr2 – výpis informací o této kritické části.
- ln <parametr1> – zobrazení symbolů v blízkosti adresy kritického oddílu. To může pomoct identifikovat kritickou část, pokud se jedná o globální proměnnou.
- dps <parameter3> – k identifikaci cesty kódu pro první inicializaci této kritické části.
- kb – pro zobrazení aktuálního trasování zásobníku, který znovu inicializuje tuto kritickou část.
- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 - Kritická adresa informací o ladění oddílu.
- Parametr 3 - První inicializační trasování zásobníku Použití dps k výpisu paměti, pokud není null
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Zámky
- ID zastavení: LOCK_ALREADY_INITIALIZED
- Zastavte kód: 0x211
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Uvolnění virtuální paměti obsahující aktivní kritickou část.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud aktuální vlákno volá VirtualFree na bloku paměti, který obsahuje aktivní kritický oddíl. Aplikace by měla volat DeleteCriticalSection v této kritické části předtím, pokud uvolní tuto paměť.
- kb - k zobrazení aktuální trasování zásobníku, který volá VirtualFree. Pravděpodobnou vinou je knihovna DLL, která volá VirtualFree.
- !cs -s <parametr1> – informace o výpisu paměti o této kritické části.
- dps <parameter2> – k identifikaci cesty kódu pro inicializaci této kritické části.
- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 - Kritické trasování zásobníku inicializace oddílu.
- Parametr 3 - Adresa bloku paměti.
- Parametr 4 - Velikost bloku paměti.
- Testovací vrstva: Zámky
- ID zastavení: LOCK_IN_FREED_VMEM
- Zastavte kód: 0x212
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Zrušte mapování oblasti paměti obsahující aktivní kritickou část.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud aktuální vlákno volá UnmapViewOfFile v bloku paměti, který obsahuje aktivní kritický oddíl. Aplikace by měla volat DeleteCriticalSection v této kritické části předtím, pokud nemapuje tuto paměť.
- kb - k zobrazení aktuální trasování zásobníku, který volá UnmapViewOfFile . Pravděpodobnou vinou je knihovna DLL, která volá UnmapViewOfFile.
- !cs -s <parametr1> – informace o výpisu paměti o této kritické části.
- dps <parameter2> – k identifikaci cesty kódu pro inicializaci této kritické části.
- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 - Kritické trasování zásobníku inicializace oddílu.
- Parametr 3 - Adresa bloku paměti.
- Parametr 4 - Velikost bloku paměti.
- Testovací vrstva: Zámky
- ID zastavení: LOCK_IN_UNMAPPED_MEM
- Zastavte kód: 0x213
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Aktuální vlákno nevlastní žádné kritické oddíly.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud aktuální vlákno volá LeaveCriticalSection, ale v souladu s interním ověřovatelem účetnictví nevlastní žádnou kritickou část. Pokud je parametr2 nula, pravděpodobně se jedná o chybu v aktuálním vlákně. Buď se pokusí opustit kritickou část, kterou nezadal, nebo možná volá LeaveCriticalSection vícekrát, než se nazývá EnterCriticalSection pro stejnou kritickou část. Pokud parametr2 není nula (jedná se o záporné celé číslo), jsou pravděpodobně poškozeny interní datové struktury ověřovatele.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 - Počet kritických oddílů vlastněných aktuálním vláknem.
- Parametr 3 - Nepoužívané
- Parametr 4 - Nepoužívané
- Testovací vrstva: Zámky
- ID zastavení: THREAD_NOT_LOCK_OWNER
- Zastavte kód: 0x214
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Použití kritického oddílu, který je soukromý pro jinou knihovnu DLL.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud se aktuální vlákno pokusí použít privátní zámek, který se nachází v jiné knihovně DLL. Například a.dll se pokusí zadat kritický oddíl definovaný uvnitř ntdll.dll. Privátní zámky nelze použít napříč knihovnami DLL.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Kritická adresa oddílu.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívané
- Parametr 4 - Nepoužívané
- Testovací vrstva: Zámky
- ID zastavení: LOCK_PRIVATE
- Zastavte kód: 0x215
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Zámek SRW není inicializován.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se vlákno pokouší použít zámek SRW (Param1), který není inicializován. K ladění použijte k získání aktuálního trasování zásobníku "kb". Tady se používá zámek SRW. Zámek SRW by měl být inicializován pomocí InitializeSRWLock, než ho lze použít.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - SRW Lock
- Parametr 2 - Nepoužívané
- Parametr 3 - Nepoužívané
- Parametr 4 - Nepoužívané
- Testovací vrstva: SRWLock
- ID zastavení: NOT_INITIALIZED
- Zastavte kód: 0x250
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Zámek SRW je již inicializován.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se znovu inicializuje zámek SRW (Param1). Pokud se zámek SRW aktivně používá jinými vlákny, opětovné inicializace zámku způsobí nepředvídatelné chování aplikace, včetně zablokování a chybových ukončení. Trasování inicializačního zásobníku může zobrazit získání, pokud byl zámek SRW staticky inicializován.
- kb – získání aktuálního trasování zásobníku Tady se znovu inicializuje zámek SRW.
- dps <parametr3> – získání trasování zásobníku inicializace zámku SRW Toto trasování zásobníku může zobrazit získání, pokud byl zámek staticky inicializován.
- Parametr 1 - SRW Lock
- Parametr 2 - ThreadId vlákna, které inicializovalo zámek SRW.
- Parametr 3 - Adresa trasování inicializačního zásobníku. Pomocí adresy> dps <zjistíte, kde byl inicializován zámek SRW.
- Parametr 4 - Nepoužívané
- Testovací vrstva: SRWLock
- ID zastavení: ALREADY_INITIALIZED
- Zastavte kód: 0x251
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Neshoda Acquire-Release na zámku SRW.
Pravděpodobná příčinaTato stopa se vygeneruje, pokud se uvolní zámek SRW (Param1) s nesprávným rozhraním API verze. Pokud se zámek SRW získal pro sdílený přístup a vydává se pomocí výhradního rozhraní API verze nebo se zámek SRW získal pro výhradní přístup a vydává se pomocí sdíleného rozhraní API verze. To může mít za následek nepředvídatelné chování aplikace, včetně zablokování a chybových ukončení.
- kb – získání aktuálního trasování zásobníku Tady se vydává zámek SRW pomocí nesprávného rozhraní API.
- dps <parameter3> – získání trasování zásobníku zámkem SRW
- Parametr 1 - SRW Lock
- Parametr 2 - ThreadId vlákna, které získalo zámek SRW.
- Parametr 3 - Adresa trasování získání zásobníku. Pomocí adresy> dps <zjistíte, kde byl zámek SRW získán.
- Parametr 4 - Nepoužívané
- Testovací vrstva: SRWLock
- ID zastavení: MISMATCHED_ACQUIRE_RELEASE
- Zastavte kód: 0x252
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Zámek SRW se získává rekurzivně stejným vláknem.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se zámek SRW (Param1) získává rekurzivně stejným vláknem. Výsledkem bude zablokování a vlákno by blokovalo neomezeně dlouho. Rekurzivní získání zámku SRW ve výhradním režimu způsobí zablokování. Rekurzivní získání zámku SRW ve sdíleném režimu způsobí zablokování v případě, že vlákno čeká na výhradní přístup. Podívejte se na následující příklad: – Vlákno A získá zámek SRW ve sdíleném režimu – Vlákno B se pokusí o acruire zámek SRW ve výhradním režimu a čeká – Vlákno A se pokusí získat zámek SRW ve sdíleném režimu rekurzivně. To bude úspěšné, pokud neexistuje žádný výhradní číšník (v tomto případě B). Vzhledem k tomu, že zámky SRW nemají zapisovač hladovění, vlákno A čeká za vláknem B. Teď vlákno B čeká na vlákno A, které čeká na vlákno B, což způsobuje cyklický čekání, a proto zablokování.
- kb – získání aktuálního trasování zásobníku Tady se zámek SRW získává rekurzivně.
- dps <parameter2> – získání trasování zásobníku pro první získání.
- Parametr 1 - SRW Lock
- Parametr 2 - Adresa prvního získání trasování zásobníku. Pomocí adresy> dps <zjistíte, kde byl zámek SRW získán.
- Parametr 3 - Nepoužívané
- Parametr 4 - Nepoužívané
- Testovací vrstva: SRWLock
- ID zastavení: RECURSIVE_ACQUIRE
- Zastavte kód: 0x253
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Vlákno, které se ukončuje nebo je ukončeno, vlastní zámek SRW.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud vlákno (Param2), které vlastní zámek SRW (Param1), se ukončí nebo ukončí. Výsledkem bude osamocený zámek SRW a vlákna, která se snaží tento zámek získat, by blokovala neomezeně dlouho.
- kb – získání aktuálního trasování zásobníku Tady se vlákno ukončuje nebo ukončuje.
- dps <parameter3> – získání trasování zásobníku zámkem SRW
- Parametr 1 - SRW Lock
- Parametr 2 - ThreadId vlákna, které se ukončuje nebo ukončuje.
- Parametr 3 - Adresa trasování získání zásobníku. Pomocí adresy> dps <zjistíte, kde byl zámek SRW získán.
- Parametr 4 - Nepoužívané
- Testovací vrstva: SRWLock
- ID zastavení: EXIT_THREAD_OWNS_LOCK
- Zastavte kód: 0x254
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Tento vlákno nezískalo uvolnění zámku SRW.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud se zámek SRW (Param1) uvolní vlákno (Param2), které zámek nezískalo. To představuje chybný programovací postup, který je obtížné správně získat a může vést k nepředvídatelným chování aplikace.
- kb – získání aktuálního trasování zásobníku Tady vlákno vydává zámek SRW, který nezískal.
- dps <parameter4> – získání trasování zásobníku zámkem SRW
- Parametr 1 - SRW Lock
- Parametr 2 - Current ThreadId.
- Parametr 3 - ThreadId vlákna, které získalo zámek SRW.
- Parametr 4 - Adresa trasování získání zásobníku. Pomocí adresy> dps <zjistíte, kde byl zámek SRW získán.
- Testovací vrstva: SRWLock
- ID zastavení: INVALID_OWNER
- Zastavte kód: 0x255
- Závažnost: Varování
- Jednorázová chyba:
- Zpráva o chybě: Žádný
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Uvolnění paměti obsahuje aktivní zámek SRW.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud uvolněná adresa paměti (Param1) obsahuje aktivní zámek SRW, který se stále používá. To může mít za následek nepředvídatelné chování aplikace, včetně chybových ukončení a zablokování.
- kb – získání aktuálního trasování zásobníku V tomto případě se uvolní paměť, která obsahuje aktivní zámek SRW.
- dps <parameter4> – získání trasování zásobníku zámkem SRW
- Parametr 1 - SRW Lock
- Parametr 2 - Adresa uvolněné paměti.
- Parametr 3 - ThreadId vlákna, které získalo zámek SRW.
- Parametr 4 - Adresa trasování získání zásobníku. Pomocí adresy> dps <zjistíte, kde byl zámek SRW získán.
- Testovací vrstva: SRWLock
- ID zastavení: IN_FREED_MEMORY
- Zastavte kód: 0x256
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Knihovna DLL, která je uvolněna, obsahuje aktivní zámek SRW.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud knihovna DLL uvolněná (Param2) obsahuje aktivní zámek SRW (Param1), který se stále používá. To může mít za následek nepředvídatelné chování aplikace, včetně chybových ukončení a zablokování.
- kb – získání aktuálního trasování zásobníku V tomto případě je knihovna DLL uvolněna, která obsahuje aktivní zámek SRW.
- du <parameter2> - k nalezení názvu knihovny DLL, která je uvolněna.
- dps <parameter4> – získání trasování zásobníku zámkem SRW
- Parametr 1 - SRW Lock
- Parametr 2 - Address of the name of the DLL being unloaded. Jméno zobrazíte pomocí du <adresy> .
- Parametr 3 - ThreadId vlákna, které získalo zámek SRW.
- Parametr 4 - Adresa trasování získání zásobníku. Pomocí adresy> dps <zjistíte, kde byl zámek SRW získán.
- Testovací vrstva: SRWLock
- ID zastavení: IN_UNLOADED_DLL
- Zastavte kód: 0x257
- Závažnost: Varování
- Jednorázová chyba:
- Zpráva o chybě: Žádný
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Zámek SRW se získává při cestě vypnutí, což může vést k zablokování.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se na cestě vypnutí získává zámek SRW (Param1). Zámky SRW nejsou vypínání. Pokus o získání zámku SRW, který byl osamocený (z důvodu vypnutí procesu nebo z nějakého jiného důvodu), způsobí zablokování. Volání ConditionVariableSRW na cestě vypnutí může také způsobit, že se tento ověřitel zastaví při uvolnění a získání zámku během tohoto volání. Ladění tohoto zastavení:
- kb – získání aktuálního trasování zásobníku Tady se zámek SRW získává na cestě vypnutí.
- Parametr 1 - SRW Lock
- Parametr 2 - Nepoužívané
- Parametr 3 - Nepoužívané
- Parametr 4 - Nepoužívané
- Testovací vrstva: SRWLock
- ID zastavení: ACQUIRE_ON_SHUTDOWN_PATH
- Zastavte kód: 0x258
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Neplatná výjimka popisovače pro aktuální trasování zásobníku
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud funkce v horní části zásobníku předala neplatný popisovač rutinám systému. Obvykle jednoduchý příkaz kb odhalí, jaká je hodnota předaného popisovače (musí to být jeden z parametrů – obvykle první). Pokud je hodnota null, je to jasně špatně. Pokud hodnota vypadá v pořádku, musíte použít rozšíření ladicího programu !htrace, abyste získali historii operací souvisejících s touto hodnotou popisovače. Ve většině případů musí být použita hodnota popisovače po zavření.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Exception code.
- Parametr 2 - Exception record. K jeho zobrazení použijte .exr.
- Parametr 3 - Kontextový záznam. K zobrazení použijte .cxr.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Ovládá
- ID zastavení: INVALID_HANDLE
- Zastavte kód: 0x300
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Neplatný index TLS použitý pro aktuální trasování zásobníku
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud funkce v horní části zásobníku předala neplatnému indexu TLS rutinám systému TLS. Obvykle jednoduchý příkaz kb odhalí, co je špatně. Typická chyba spočívá v tom, že místo volání tlsAlloc předpokládáme určitou hodnotu indexu TLS. K tomu může dojít buď tak, že si myslíte, že vždy získáte hodnotu N, proto není nutné volat TlsAlloc nebo častěji kvůli neinicializované proměnné.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Neplatný index TLS.
- Parametr 2 - Byl očekáváno nižší část indexu.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Ovládá
- ID zastavení: INVALID_TLS_VALUE
- Zastavte kód: 0x301
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Neplatné parametry pro volání WaitForMultipleObjects.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud funkce v horní části zásobníku s názvem WaitForMultipleObjects s hodnotou NULL jako adresou pole popisovačů, na které se má čekat, nebo s nulou jako počtem popisovačů. Jednoduchý příkaz kb zobrazí funkci, která toto rozhraní API volá nesprávně.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Adresa objektu zpracovává vektor.
- Parametr 2 - Počet popisovačů.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Ovládá
- ID zastavení: INCORRECT_WAIT_CALL
- Zastavte kód: 0x302
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Popisovač NULL předaný jako parametr. Je nutné použít platný popisovač.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud funkce v horní části zásobníku předala rutinám systému popisovač NULL.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Nepoužívá se.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Ovládá
- ID zastavení: NULL_HANDLE
- Zastavte kód: 0x303
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Čeká na popisovač vlákna v knihovně DllMain.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud aktuální vlákno aktuálně spouští kód uvnitř dllMain funkce jednoho z knihoven DLL načtených v aktuálním procesu a volá WaitForSingleObject nebo WaitForMultipleObjects čekání na popisovač vlákna ve stejném procesu. To by pravděpodobně vedlo k zablokování, protože popisovač vlákna nebude signalován, pokud se druhý vlákno ukončí. Když druhé vlákno zavolá ExitThread, pokusí se získat zámek zavaděče knihovny DLL, pak zavolá dllMain (DLL_THREAD_DETACH) pro všechny knihovny DLL v aktuálním procesu. Zámek zavaděče ale vlastní první vlákno (ten, který čeká na popisovač vlákna), takže obě vlákna budou zablokovaná.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Závitový úchyt.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Ovládá
- ID zastavení: WAIT_IN_DLLMAIN
- Zastavte kód: 0x304
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Nesprávný typ objektu pro popisovač
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud aktuální vlákno volá rozhraní API s popisovačem objektu s nesprávným typem objektu. Například volání SetEvent s popisovačem semaphore jako parametr vygeneruje toto zastavení. Ladění tohoto zastavení:
- kb – zobrazení aktuálního trasování zásobníku Viníkem je pravděpodobně knihovna DLL, která volá do verifier.dll;
- du <parameter2> - k zobrazení skutečného typu popisovače. Hodnota popisovače je parametr1. Ve výše uvedeném příkladu se zobrazí: "Semaphore".
- du <parameter3> – zobrazení typu objektu očekávaného rozhraním API. V předchozím příkladu bude tento název: "Event".
- !htrace <parametr1> může být užitečný, protože v tomto popisovači zobrazí trasování zásobníku pro poslední operace otevření a zavření.
- Parametr 1 - Handle value.
- Parametr 2 - Název typu objektu. Zobrazení pomocí du
- Parametr 3 - Očekávaný název typu objektu. Zobrazení pomocí du
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Ovládá
- ID zastavení: INCORRECT_OBJECT_TYPE
- Zastavte kód: 0x305
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Uvolnění knihovny DLL, která přidělila index TLS, který nebyl uvolněn.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se před uvolněním indexu TLS uvolní knihovna DLL, která přidělila index TLS. Ladění tohoto zastavení:
- du <parameter3> - display the name of theprit DLL;
- .reload xxx.dll=<parameter4> – symboly opětovného načtení pro knihovnu DLL v případě potřeby xxx.dll je název knihovny DLL zobrazené v předchozím kroku;
- u <parameter2> – rozebere kód, který přidělil tls. To by mělo odkazovat na funkci, která přidělila protokol TLS, ale zapomněla ho uvolnit před uvolněním knihovny DLL.
- Parametr 1 - TLS index
- Parametr 2 - Adresa kódu, který přidělil tento index TLS.
- Parametr 3 - DLL name address. K výpisu použijte du.
- Parametr 4 - DLL základní adresa.
- Testovací vrstva: TLS
- ID zastavení: TLS_LEAK
- Zastavte kód: 0x350
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Poškozená struktura ověřovače TLS.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud jsou poškozeny interní struktury pro ověření použité k uložení stavu slotů TLS pro vlákno. Velmi pravděpodobné je, že to je způsobeno náhodným poškozením v procesu.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - TEB adresa.
- Parametr 2 - Očekávaná adresa TEB.
- Parametr 3 - THREAD ID.
- Parametr 4 - Očekávané ID vlákna.
- Testovací vrstva: TLS
- ID zastavení: CORRUPTED_TLS
- Zastavte kód: 0x351
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Použití neplatného indexu TLS
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se použije neplatný index TLS. Ve většině případů je to proto, že kód stále používá tento index, když se volá TlsFree. Tady je příklad vlákna fondu vláken. T1: Dll načte a TlsAlloc T1: Zpětné volání fronty T1: Přeskočeno čekání/zrušení zpětného volání T1: TlsFree T2: Volání zpět spuštění a volání TlsSetValue T1: Dll unloads
Informace zobrazené nástrojem Application Verifier- Parametr 1 - TLS index
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: TLS
- ID zastavení: INVALID_TLS_INDEX
- Zastavte kód: 0x352
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Uvolnění bloku virtuální paměti s neplatnou velikostí nebo počáteční adresou
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud ověřovatel aplikace zjistí virtualFree nebo knihovnu DLL uvolnění s neplatnou počáteční adresou nebo velikostí přidělení paměti. V případě uvolnění knihovny DLL to pravděpodobně znamená poškození paměti v seznamu načtených knihoven DLL. Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku a adresu a velikost paměti, která se chystá uvolnit, a zkuste zjistit, proč jsou neplatné.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Alokační základní adresa.
- Parametr 2 - Velikost oblasti paměti.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: INVALID_FREEMEM
- Zastavte kód: 0x600
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Nesprávné virtuální volání alokací
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud ověřovatel aplikace zjistí volání VirtualAlloc s neplatnou počáteční adresou nebo velikostí přidělení paměti. Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku (kb) a adresu a velikost paměti, která se chystáte přidělit, a zkuste zjistit, proč jsou neplatné.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Ukazatel na základní adresu přidělení.
- Parametr 2 - Ukazatel na velikost oblasti paměti.
- Parametr 3 - Nepoužívané
- Parametr 4 - Nepoužívané
- Testovací vrstva: Paměť
- ID zastavení: INVALID_ALLOCMEM
- Zastavte kód: 0x601
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Nesprávné volání zobrazení mapy
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud ověřovatel aplikace zjistí volání MapViewOfFile s neplatnou základní adresou nebo velikostí mapování. Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku (kb) a adresu a velikost paměti, která se chystá namapovat, a zkuste zjistit, proč jsou neplatné.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Ukazatel na mapování základní adresy.
- Parametr 2 - Ukazatel na velikost zobrazení.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: INVALID_MAPVIEW
- Zastavte kód: 0x602
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Zbídání neplatné adresy
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud ověřovatel aplikace zjistí volání IsBadXXXPtr s neplatnou adresou (například adresou v režimu jádra místo normální adresy v uživatelském režimu), aby se paměťová vyrovnávací paměť vysílala. Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku (kb) a zkuste zjistit, proč volající funkce IsBadXXXPtr skončil s neplatnou adresou. Často je adresa neinicializovaný, například neinicializovaný ukazatel. Knihovna MSDN uvádí několik důvodů, proč by aplikace neměly používat rozhraní API IsBadXXXPtr: V předpřipraveném prostředí multitaskingu může některé jiné vlákno změnit přístup procesu k otestované paměti. Deferencování potenciálně neplatných ukazatelů může zakázat rozšíření zásobníku v jiných vláknech. Vlákno, které vyčerpalo zásobník, když bylo zakázáno rozšíření zásobníku, způsobí okamžité ukončení nadřazeného procesu bez automaticky otevíraných oken chyb nebo diagnostických informací. Očekává se, že vlákna v procesu budou spolupracovat takovým způsobem, že jedna nezvolní paměť, kterou ostatní potřebují. Použití této funkce neguje potřebu to udělat. Pokud to neuděláte, aplikace může selhat nepředvídatelným způsobem. Vzhledem ke všem těmto důvodům doporučujeme tato rozhraní API nikdy nepoužívat.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Počáteční adresa.
- Parametr 2 - Velikost bloku paměti.
- Parametr 3 - Neplatná adresa.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: PROBE_INVALID_ADDRESS
- Zastavte kód: 0x603
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Probing free memory.
Pravděpodobná příčinaTato stopa se vygeneruje, pokud ověřovatel aplikace zjistí volání IsBadXXXPtr pro přidělení paměti, které je zdarma. To je velmi špatné, protože je možné, že v některých jiných případech byla tato paměť znovu použita pro některé další přidělení. Vzhledem k tomu, že aktuální cesta kódu (kb) vlastní danou paměť, může dojít k poškození paměti někoho jiného, a to katastrofálními účinky. Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku (kb) a zkuste zjistit, proč volající funkce IsBadXXXPtr skončil testování volné paměti. Adresa může být neinicializovaná (např. neinicializovaný ukazatel) nebo možná již uvolněná paměť. Pokud už paměť uvolnil jeden z rozhraní API VirtualFree nebo UnmapViewOfFile, vyhledá parametr !avrf -vs -a parametr3 protokol trasování zásobníku cest kódu, které přidělily nebo uvolnily danou adresu, a pokud jsou k dispozici, zobrazí trasování zásobníku. Může se zobrazit trasování zásobníku, které tuto paměť uvolnilo. Častěji je paměť již uvolněným přidělením haldy. Chcete-li zkontrolovat, zda je tato možnost dostupná, vyhledá parametr !avrf -hp -a parametr3 protokol trasování zásobníku cest kódu, které přidělily nebo uvolnily danou adresu z/do haldy, a zobrazí trasování zásobníku, pokud jsou k dispozici. Knihovna MSDN uvádí několik důvodů, proč by aplikace neměly používat rozhraní API IsBadXXXPtr: V předpřipraveném prostředí multitaskingu může některé jiné vlákno změnit přístup procesu k otestované paměti. Deferencování potenciálně neplatných ukazatelů může zakázat rozšíření zásobníku v jiných vláknech. Vlákno, které vyčerpalo zásobník, když bylo zakázáno rozšíření zásobníku, způsobí okamžité ukončení nadřazeného procesu bez automaticky otevíraných oken chyb nebo diagnostických informací. Očekává se, že vlákna v procesu budou spolupracovat takovým způsobem, že jedna nezvolní paměť, kterou ostatní potřebují. Použití této funkce neguje potřebu to udělat. Pokud to neuděláte, aplikace může selhat nepředvídatelným způsobem. Vzhledem ke všem těmto důvodům doporučujeme tato rozhraní API nikdy nepoužívat.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Počáteční adresa.
- Parametr 2 - Velikost bloku paměti.
- Parametr 3 - Adresa stránky volného paměti.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: PROBE_FREE_MEM
- Zastavte kód: 0x604
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Probing a guard page.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud ověřovatel aplikace zjistí volání IsBadXXXPtr pro přidělení paměti, které obsahuje alespoň jeden GUARD_PAGE. To je velmi špatné, protože je velmi možné, že tato GUARD_PAGE je konec aktuálního zásobníku vlákna. Jak je uvedeno v knihovně MSDN: Dereferencing potenciálně neplatných ukazatelů může zakázat rozšíření zásobníku v jiných vláknech. Vlákno, které vyčerpalo zásobník, když bylo zakázáno rozšíření zásobníku, způsobí okamžité ukončení nadřazeného procesu bez automaticky otevíraných oken chyb nebo diagnostických informací. Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku (kb) a zkuste zjistit, proč volající funkce IsBadXXXPtr skončil probít GUARD_PAGE. Knihovna MSDN uvádí několik důvodů, proč by aplikace neměly používat rozhraní API IsBadXXXPtr: V předpřipraveném prostředí multitaskingu může některé jiné vlákno změnit přístup procesu k otestované paměti. Deferencování potenciálně neplatných ukazatelů může zakázat rozšíření zásobníku v jiných vláknech. Vlákno, které vyčerpalo zásobník, když bylo zakázáno rozšíření zásobníku, způsobí okamžité ukončení nadřazeného procesu bez automaticky otevíraných oken chyb nebo diagnostických informací. Očekává se, že vlákna v procesu budou spolupracovat takovým způsobem, že jedna nezvolní paměť, kterou ostatní potřebují. Použití této funkce neguje potřebu to udělat. Pokud to neuděláte, aplikace může selhat nepředvídatelným způsobem. Vzhledem ke všem těmto důvodům doporučujeme tato rozhraní API nikdy nepoužívat.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Počáteční adresa.
- Parametr 2 - Velikost bloku paměti.
- Parametr 3 - Adresa strážné stránky.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: PROBE_GUARD_PAGE
- Zastavte kód: 0x605
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Probing NULL address.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud ověřovatel aplikace zjistí volání IsBadXXXPtr s adresou NULL. Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku (kb) a zkuste zjistit, proč volající funkce IsBadXXXPtr skončil s adresou NULL. Obvykle se jedná o znaménko někoho, kdo nekontroluje návratovou hodnotu některé z funkcí přidělení paměti. Například následující kód je nesprávný:
int main (void)
{
PVOID p;
p = malloc (1024);
Use (p);
return 0;
}
void Use (PVOID p)
{
if (IsBadReadPtr (p)) {
return;
}
//
// p is safe to be used here.
//
}
Tento kód by se měl znovu napsat takto:
int main (void)
{
PVOID p;
p = malloc (1024);
if (NULL == p)) {
return -1;
}
Use (p);
return 0;
}
void Use (PVOID p)
{
//
// p is safe to be used here.
//
}
Knihovna MSDN uvádí několik důvodů, proč by aplikace neměly používat rozhraní API IsBadXXXPtr: V předpřipraveném prostředí multitaskingu může některé jiné vlákno změnit přístup procesu k otestované paměti. Deferencování potenciálně neplatných ukazatelů může zakázat rozšíření zásobníku v jiných vláknech. Vlákno, které vyčerpalo zásobník, když bylo zakázáno rozšíření zásobníku, způsobí okamžité ukončení nadřazeného procesu bez automaticky otevíraných oken chyb nebo diagnostických informací. Očekává se, že vlákna v procesu budou spolupracovat takovým způsobem, že jedna nezvolní paměť, kterou ostatní potřebují. Použití této funkce neguje potřebu to udělat. Pokud to neuděláte, aplikace může selhat nepředvídatelným způsobem. Vzhledem ke všem těmto důvodům doporučujeme tato rozhraní API nikdy nepoužívat.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Nepoužívá se.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: PROBE_NULL
- Zastavte kód: 0x606
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Sondování bloku paměti s neplatnou počáteční adresou nebo velikostí
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud ověřovatel aplikace zjistí volání IsBadXXXPtr s neplatnou počáteční adresou (například adresou v režimu jádra místo normální adresy uživatelského režimu) nebo neplatnou velikost vyrovnávací paměti, která se má prověřit. Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku (kb) a zkuste zjistit, proč volající funkce IsBadXXXPtr skončil s neplatnou adresou nebo velikostí. Adresa nebo velikost jsou často prosté falešné, například neinicializované proměnné. Knihovna MSDN uvádí několik důvodů, proč by aplikace neměly používat rozhraní API IsBadXXXPtr: V předpřipraveném prostředí multitaskingu může některé jiné vlákno změnit přístup procesu k otestované paměti. Deferencování potenciálně neplatných ukazatelů může zakázat rozšíření zásobníku v jiných vláknech. Vlákno, které vyčerpalo zásobník, když bylo zakázáno rozšíření zásobníku, způsobí okamžité ukončení nadřazeného procesu bez automaticky otevíraných oken chyb nebo diagnostických informací. Očekává se, že vlákna v procesu budou spolupracovat takovým způsobem, že jedna nezvolní paměť, kterou ostatní potřebují. Použití této funkce neguje potřebu to udělat. Pokud to neuděláte, aplikace může selhat nepředvídatelným způsobem. Vzhledem ke všem těmto důvodům doporučujeme tato rozhraní API nikdy nepoužívat.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Počáteční adresa.
- Parametr 2 - Velikost bloku paměti.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: PROBE_INVALID_START_OR_SIZE
- Zastavte kód: 0x607
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Uvolnění knihovny DLL s neplatnou velikostí nebo počáteční adresou
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud ověřovatel aplikace zjistí uvolnění knihovny DLL s neplatnou počáteční adresou nebo velikostí rozsahu paměti knihovny DLL. To pravděpodobně znamená poškození paměti uvnitř interního ntdll.dll načteného seznamu dll.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - DLL základní adresa paměti.
- Parametr 2 - DLL velikost rozsahu paměti.
- Parametr 3 - DLL name address. K výpisu použijte du.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: INVALID_DLL_RANGE
- Zastavte kód: 0x608
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Uvolnění bloku paměti uvnitř rozsahu adres zásobníku aktuálního vlákna
Pravděpodobná příčinaTato stopa se vygeneruje, pokud ověřovatel aplikace zjistí VirtualFree pro blok paměti, který je ve skutečnosti součástí zásobníku aktuálního vlákna (!). Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku (kb) a zkuste pochopit, proč funkce, která se nazývá VirtualFree, si myslela, že blok paměti byl dynamicky přidělen nebo mapován, ale ve skutečnosti byla paměť přidělena ze zásobníku.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Alokační základní adresa.
- Parametr 2 - Velikost oblasti paměti.
- Parametr 3 - Stack low limit address.
- Parametr 4 - Stack high limit address.
- Testovací vrstva: Paměť
- ID zastavení: FREE_THREAD_STACK_MEMORY
- Zastavte kód: 0x609
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Nesprávný parametr FreeType pro operaci VirtualFree.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud ověřovatel aplikace zjistí VirtualFree s nesprávnou hodnotou parametru FreeType. Pouze dvě přijatelné hodnoty pro tento parametr jsou MEM_DECOMMIT a MEM_RELEASE. Pokud virtualFree je volána s libovolnou jinou hodnotou kromě těchto dvou, VirtualFree se nezdaří uvolnit paměť. Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku (kb): Volající virtualFree je pravděpodobně viníkem.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Nesprávná hodnota používaná aplikací.
- Parametr 2 - Byl očekáváno správná hodnota 1.
- Parametr 3 - Byl očekáváno správná hodnota 2.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: INVALID_FREE_TYPE
- Zastavte kód: 0x60A
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Pokoušíte se uvolnit blok virtuální paměti, který je již volný.
Pravděpodobná příčinaTato stopa se vygeneruje, pokud ověřovatel aplikace zjistí VirtualFree pro adresu, která je již zdarma. Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku (kb) a zkuste zjistit, proč je paměť již volná, ale aplikace se ji pokouší znovu uvolnit. !avrf -vs -a parametr1 vyhledá protokol trasování zásobníku cest kódu, které přidělily nebo uvolnily danou adresu, a zobrazí trasování zásobníku, pokud jsou k dispozici. Může se zobrazit trasování zásobníku, které tuto paměť uvolnilo.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Adresa bloku paměti.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: MEM_ALREADY_FREE
- Zastavte kód: 0x60B
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Nesprávný parametr Size pro operaci VirtualFree (MEM_RELEASE).
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud ověřovatel aplikace zjistí VirtualFree (MEM_RELEASE) s nenulovou hodnotou parametru dwSize. Při použití MEM_RELEASE je jediná přijatelná hodnota pro tento parametr 0. Pokud je volána VirtualFree s jakoukoli jinou hodnotou s výjimkou 0, VirtualFree se nezdaří uvolnit paměť. Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku (kb): Volající virtualFree je pravděpodobně viníkem.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Nesprávná velikost používaná aplikací.
- Parametr 2 - Očekávaná správná velikost (0).
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: INVALID_FREE_SIZE
- Zastavte kód: 0x60C
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Neočekávaná výjimka vyvolaná v rutině vstupního bodu knihovny DLL
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud funkce vstupního bodu knihovny DLL (DllMain) vyvolává výjimku. Jedním z příkladů, proč je to špatně: pokud dllMain(DLL_PROCESS_ATTACH) vyvolává výjimku, zavaděč knihovny Windows DLL bude: - Zachycení a skrytí výjimky; - Uvolněte knihovnu DLL bez volání knihovny DllMain(DLL_PROCESS_DETACH). V mnoha případech knihovna DLL již přidělila některé prostředky, pak vyvolala výjimku a nebude mít šanci uvolnit tyto prostředky v dllMain (DLL_PROCESS_DETACH). Ladění tohoto zastavení:
- du <parameter1> - k zobrazení názvu knihovny DLL;
- .exr <parameter2> - k zobrazení informací o výjimce;
- Parametr .cxr3 <> následovaný kb – zobrazení informací o kontextu výjimky a trasování zásobníku po dobu, kdy byla výjimka vyvolána;
- < parametr4> je adresa interní struktury ověřovatele a nemá pro většinu uživatelů ověřovatele žádný význam.
- Parametr 1 - DLL name (use du to dump it).
- Parametr 2 - Exception record. K jeho zobrazení použijte .exr.
- Parametr 3 - Kontextový záznam. K zobrazení použijte .cxr.
- Parametr 4 - Verifier dll popisovač
- Testovací vrstva: Paměť
- ID zastavení: DLL_UNEXPECTED_EXCEPTION
- Zastavte kód: 0x60D
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Neočekávaná výjimka vyvolaná ve funkci vlákna
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud funkce vlákna vyvolává výjimku. To je špatné, protože celý proces bude zabit. Ladění tohoto zastavení:
- < parametr1> může být významný pro typ výjimky. Například kód výjimky C0000005 znamená porušení přístupu;
- .exr <parameter2> - k zobrazení informací o výjimce;
- Parametr .cxr3 <> následovaný kb – zobrazení informací o kontextu výjimky.
- Parametr 1 - Exception code.
- Parametr 2 - Exception record. K jeho zobrazení použijte .exr.
- Parametr 3 - Kontextový záznam. K zobrazení použijte .cxr.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: THREAD_UNEXPECTED_EXCEPTION
- Zastavte kód: 0x60E
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Při sondování paměti došlo k neočekávané výjimce.
Pravděpodobná příčinaPokud během volání IsBadXXXPtr dojde k výjimce, vygeneruje se tato zarážka. To znamená, že vyrovnávací paměť, kterou provádíme, ve skutečnosti nemá ochranu, kterou volající předpokládá, nebo že paměť již byla uvolněna atd. Další příklady použití rozhraní API IsBadXXXPtr se nedoporučuje, podívejte se na výše uvedenou diskuzi o jiných zastavovacích kódech (PROBE_INVALID_ADDRESS, PROBE_FREE_MEM, PROBE_GUARD_PAGE, PROBE_NULL, PROBE_INVALID_START_OR_SIZE). Ladění tohoto zastavení:
- < parametr1> bude obvykle C0000005 a to znamená narušení přístupu;
- .exr <parameter2> - k zobrazení informací o výjimce;
- Parametr .cxr3 <> následovaný kb – zobrazení informací o kontextu výjimky a trasování zásobníku v době, kdy byla výjimka vyvolána.
- Parametr 1 - Exception code.
- Parametr 2 - Exception record. K jeho zobrazení použijte .exr.
- Parametr 3 - Kontextový záznam. K zobrazení použijte .cxr.
- Parametr 4 - Nepoužívané
- Testovací vrstva: Paměť
- ID zastavení: PROBE_UNEXPECTED_EXCEPTION
- Zastavte kód: 0x60F
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Probíhá pokus o resetování adresy NULL.
Pravděpodobná příčinaTato stopa se vygeneruje, pokud ověřovatel aplikace zjistí volání VirtualFree (MEM_RESET) s prvním parametrem NULL. MEM_RESET by se měla použít pouze pro již přidělenou paměť, takže hodnota NULL není v tomto případě platným prvním parametrem.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Nepoužívá se.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: INVALID_MEM_RESET
- Zastavte kód: 0x610
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Uvolnění bloku paměti haldy uvnitř rozsahu adres zásobníku aktuálního vlákna
Pravděpodobná příčinaTato stopa se vygeneruje, pokud ověřovatel aplikace zjistí heapFree, pro blok paměti, který je ve skutečnosti součástí zásobníku aktuálního vlákna (!). Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku (kb) a zkuste pochopit, proč funkce, která se nazývá HeapFree, si myslela, že blok paměti byl dynamicky přidělen nebo mapován, ale ve skutečnosti byla paměť přidělena ze zásobníku.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Alokační základní adresa.
- Parametr 2 - Velikost oblasti paměti.
- Parametr 3 - Stack low limit address.
- Parametr 4 - Stack high limit address.
- Testovací vrstva: Paměť
- ID zastavení: FREE_THREAD_STACK_MEMORY_AS_HEAP
- Zastavte kód: 0x612
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Zrušte mapování oblasti paměti uvnitř rozsahu adres zásobníku aktuálního vlákna.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud ověřovatel aplikace zjistí UnmapViewOfFile pro blok paměti, který je ve skutečnosti součástí zásobníku aktuálního vlákna (!). Pokud chcete tuto stopu ladit, podívejte se na aktuální trasování zásobníku (kb) a zkuste zjistit, proč funkce, která se nazývá UnmapViewOfFile, myslela, že blok paměti byl dynamicky přidělen nebo mapován, ale ve skutečnosti byla paměť přidělena ze zásobníku.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Alokační základní adresa.
- Parametr 2 - Velikost oblasti paměti.
- Parametr 3 - Stack low limit address.
- Parametr 4 - Stack high limit address.
- Testovací vrstva: Paměť
- ID zastavení: FREE_THREAD_STACK_MEMORY_AS_MAP
- Zastavte kód: 0x613
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Nesprávná RTL_RESOURCE adresa.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se aplikace pokouší použít hodnotu NULL nebo jinou nesprávnou adresu (např. adresu v režimu jádra) jako adresu platného objektu. RtlInitializeResource (NULL) je nesprávné volání rozhraní API, které aktivuje tento druh zastavení ověřovatele. parametr param1 je použitá nesprávná adresa a viník je na trasování zásobníku (zobrazí se s kb).
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Adresa.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: INVALID_RESOURCE_ADDRESS
- Zastavte kód: 0x614
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Neplatná kritická adresa oddílu
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se aplikace pokouší použít hodnotu NULL nebo jinou nesprávnou adresu (např. adresu v režimu jádra) jako adresu platného objektu. EnterCriticalSection(NULL) je nesprávné volání rozhraní API, které aktivuje tento druh ověřovacího zastavení. parametr param1 je použitá nesprávná adresa a viník je na trasování zásobníku (zobrazí se s kb).
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Adresa.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: INVALID_CRITSECT_ADDRESS
- Zastavte kód: 0x615
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Pokus o spuštění kódu v paměti, která není spustitelná.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se aplikace pokouší spustit kód z adresy, která není spustitelná nebo bezplatná. Ladění tohoto zastavení:
- u <parameter2> – pro zrušení sestavení viníkového kódu
- Parametr .exr3>< – zobrazení informací o výjimce
- Parametr .cxr4 <> následovaný kb – zobrazení informací o kontextu výjimky a trasování zásobníku po dobu, kdy byla výjimka vyvolána.
- Parametr 1 - Adresa, ke které se přistupuje.
- Parametr 2 - Kód provádějící neplatný přístup.
- Parametr 3 - Exception record. K jeho zobrazení použijte .exr.
- Parametr 4 - Kontextový záznam. K zobrazení použijte .cxr.
- Testovací vrstva: Paměť
- ID zastavení: THREAD_UNEXPECTED_EXCEPTION_CODE
- Zastavte kód: 0x616
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Při inicializaci výstupní vyrovnávací paměti došlo k neočekávané výjimce.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud při inicializaci vyrovnávací paměti určené jako výstupní parametr pro rozhraní API Win32 nebo CRT dojde k výjimce. Obvykle to znamená, že zadaná velikost výstupní vyrovnávací paměti je nesprávná. Ladění tohoto zastavení:
- Parametr .exr3>< – zobrazení informací o výjimce
- Parametr .cxr4 <> následovaný kb – zobrazení informací o kontextu výjimky a trasování zásobníku v době, kdy byla výjimka vyvolána.
- Parametr 1 - Počáteční adresa vyrovnávací paměti.
- Parametr 2 - Velikost vyrovnávací paměti.
- Parametr 3 - Exception record. K jeho zobrazení použijte .exr.
- Parametr 4 - Kontextový záznam. K zobrazení použijte .cxr.
- Testovací vrstva: Paměť
- ID zastavení: OUTBUFF_UNEXPECTED_EXCEPTION
- Zastavte kód: 0x617
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Při pokusu o vyhledání velikosti bloku haldy došlo k neočekávané výjimce.
Pravděpodobná příčinaPokud při volání haldy pro blok haldy, která se uvolní, se vygeneruje tato stopa, pokud se při volání haldy zobrazí výjimka. Obvykle to znamená, že zadaná adresa bloku haldy je nesprávná nebo je poškozená halda. Ladění tohoto zastavení:
- Parametr .exr3>< – zobrazení záznamu výjimky
- Parametr .cxr4 <> následovaný kb – zobrazení informací o kontextu výjimky a trasování zásobníku v době, kdy byla výjimka vyvolána.
- Parametr 1 - Adresa bloku haldy, která je uvolněna.
- Parametr 2 - Haldy rukojeť.
- Parametr 3 - Exception record. K jeho zobrazení použijte .exr.
- Parametr 4 - Kontextový záznam. K zobrazení použijte .cxr.
- Testovací vrstva: Paměť
- ID zastavení: SIZE_HEAP_UNEXPECTED_EXCEPTION
- Zastavte kód: 0x618
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Uvolnění bloku paměti s neplatnou počáteční adresou
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud program volá VirtualFree (MEM_RELEASE) s parametrem lpAddress, který není základní adresou vrácenou funkcí VirtualAlloc nebo VirtualAllocEx, když byla oblast stránek vyhrazena; Ladění tohoto zastavení:
- kb - k zobrazení aktuální trasování zásobníku, který volá VirtualFree. Pravděpodobnou vinou je knihovna DLL, která volá VirtualFree.
- Parametr 1 - Adresa bloku paměti, který se uvolní.
- Parametr 2 - Byla očekáváná správná adresa bloku paměti.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: INVALID_FREEMEM_START_ADDRESS
- Zastavte kód: 0x619
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Zrušení mapování bloku paměti s neplatnou počáteční adresou
Pravděpodobná příčinaToto zastavení je generováno, pokud program volá UnmapViewOfFile s lpBaseAddress parametr, který není identický s hodnotou vrácenou předchozím voláním MapViewOfFile nebo MapViewOfFileEx funkce. Ladění tohoto zastavení:
- kb - k zobrazení aktuální trasování zásobníku, který volá UnmapViewOfFile. Pravděpodobnou vinou je knihovna DLL, která volá UnmapViewOfFile.
- Parametr 1 - Adresa bloku paměti, který se nemapuje.
- Parametr 2 - Byla očekáváná správná adresa bloku paměti.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: INVALID_UNMAPVIEW_START_ADDRESS
- Zastavte kód: 0x61A
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Neočekávaná výjimka vyvolaná ve funkci zpětného volání fondu vláken
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud funkce zpětného volání ve vlákně fondu vláken vyvolává výjimku. Ladění tohoto zastavení:
- < parametr1> může být významný pro typ výjimky. Například kód výjimky C0000005 znamená porušení přístupu.
- Parametr .exr2>< – zobrazení informací o výjimce
- Parametr .cxr3 <> následovaný kb – zobrazení informací o kontextu výjimky.
- Parametr 1 - Exception code
- Parametr 2 - Exception record. Zobrazení pomocí souboru .exr
- Parametr 3 - Kontextový záznam. Zobrazení pomocí .cxr
- Parametr 4 - Nepoužívané
- Testovací vrstva: Paměť
- ID zastavení: THREADPOOL_UNEXPECTED_EXCEPTION
- Zastavte kód: 0x61B
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Kód v paměti, která není spustitelná
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se aplikace pokouší spustit kód z adresy, která není spustitelná nebo bezplatná. Ladění tohoto zastavení:
- u <parameter2> – pro zrušení sestavení viníkového kódu
- Parametr .exr3>< – zobrazení informací o výjimce
- Parametr .cxr4 <> následovaný kb – zobrazení informací o kontextu výjimky a trasování zásobníku po dobu, kdy byla výjimka vyvolána.
- Parametr 1 - Adresa, ke které se přistupuje
- Parametr 2 - Kód provádějící neplatný přístup
- Parametr 3 - Exception record. K jeho zobrazení použijte .exr.
- Parametr 4 - Kontextový záznam. K zobrazení použijte .cxr.
- Testovací vrstva: Paměť
- ID zastavení: THREADPOOL_UNEXPECTED_EXCEPTION_CODE
- Zastavte kód: 0x61C
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Vytváření spustitelné haldy
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud aplikace vytváří spustitelné haldy. Může to být bezpečnostní riziko.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Nepoužívá se.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: EXECUTABLE_HEAP
- Zastavte kód: 0x61D
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Přidělování spustitelné paměti.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud aplikace přiděluje spustitelné paměti. Může to být bezpečnostní riziko.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Ochrana stránky určená volajícím.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Paměť
- ID zastavení: EXECUTABLE_MEMORY
- Zastavte kód: 0x61E
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Pokus o spuštění kódu v paměti, která není spustitelná (první šance).
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se aplikace pokouší spustit kód z adresy, která není spustitelná nebo bezplatná. Ladění tohoto zastavení:
- u <parameter2> – pro zrušení sestavení viníkového kódu
- Parametr .exr3>< – zobrazení informací o výjimce
- Parametr .cxr4 <> následovaný kb – zobrazení informací o kontextu výjimky a trasování zásobníku po dobu, kdy byla výjimka vyvolána.
- Parametr 1 - Adresa, ke které se přistupuje.
- Parametr 2 - Kód provádějící neplatný přístup.
- Parametr 3 - Exception record. K jeho zobrazení použijte .exr.
- Parametr 4 - Kontextový záznam. K zobrazení použijte .cxr.
- Testovací vrstva: Výjimky
- ID zastavení: FIRST_CHANCE_ACCESS_VIOLATION_CODE
- Zastavte kód: 0x650
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Priorita tohoto vlákna fondu vláken byla změněna.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se při vrácení do fondu vláken změní priorita vlákna.
Informace zobrazené nástrojem Application Verifier- Formát: - vlákno fondu vláken (%x) s prováděním zpětného volání (%p) má změněnou prioritu vlákna (%i -> %i)
- Parametr 1 - Callback function.
- Parametr 2 - Kontext.
- Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
- Parametr 4 - Aktuální priorita.
- Testovací vrstva: Fond vláken
- ID zastavení: INCONSISTENT_PRIORITY
- Zastavte kód: 0x700
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Spřažení tohoto vlákna fondu vláken bylo změněno.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud se při vrácení do fondu vláken změní spřažení vlákna.
Informace zobrazené nástrojem Application Verifier- Formát: - threadpool threadpool (%x) s prováděním zpětného volání (%p) má změněnou masku spřažení vláken (%p -> %p)
- Parametr 1 - Callback function.
- Parametr 2 - Kontext.
- Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
- Parametr 4 - Aktuální spřažení.
- Testovací vrstva: Fond vláken
- ID zastavení: INCONSISTENT_AFFINITY_MASK
- Zastavte kód: 0x701
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Nezpracované msg ve fondu msg aktuálního vlákna.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud se do fondu vrátí nějaká zpráva, která zbyla jako nezpracovaná. Je nebezpečné, protože se zpracuje v úplně jiném kontextu. Použijte prosím !avrf -tp <Param4> k zobrazení zpráv publikovaných do tohoto vlákna.
Informace zobrazené nástrojem Application Verifier- Formát: - threadpool threadpool (%x) s prováděním zpětného volání (%p) má nevyřešenou zprávu okna (%x: %x)
- Parametr 1 - Callback function.
- Parametr 2 - Kontext.
- Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
- Parametr 4 - Threadpool thread id. Pokud chcete zobrazit zprávy publikované do tohoto vlákna, použijte !avrf -tp <threadid> .
- Testovací vrstva: Fond vláken
- ID zastavení: ORPHANED_THREAD_MESSAGE
- Zastavte kód: 0x702
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Nezařazené okno patří do aktuálního vlákna.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud je při vrácení tohoto vlákna fondu vláken do fondu zachováno jakékoli okno.
Informace zobrazené nástrojem Application Verifier- Formát: - vlákno fondu vláken (%x) s prováděním zpětného volání (%p) má platný hwnd (%x: %s), který by mohl přijímat zprávy
- Parametr 1 - Callback function.
- Parametr 2 - Kontext.
- Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
- Parametr 4 - Threadpool thread id.
- Testovací vrstva: Fond vláken
- ID zastavení: ORPHANED_THREAD_WINDOW
- Zastavte kód: 0x703
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
ExitThread() ve vlákně fondu vláken.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud je exitThread volán ve vlákně fondu vláken. Je zakázáno, protože bude systém nestabilní. Způsobí únik prostředků, zablokování nebo av.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Callback function.
- Parametr 2 - Kontext.
- Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Fond vláken
- ID zastavení: ILLEGAL_THREAD_EXIT
- Zastavte kód: 0x704
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Vlákno je ve stavu zosobnění, když se vrátí do vlákna fondu vláken.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud funkce zpětného volání změní token vlákna tak, aby zosobnil jiného uživatele, a zapomněli ho resetovat před vrácením zpět do fondu vláken.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Callback function.
- Parametr 2 - Kontext.
- Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Fond vláken
- ID zastavení: THREAD_IN_IMPERSONATION
- Zastavte kód: 0x705
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Volá se funkce, která vyžaduje trvalé vlákno.
Pravděpodobná příčinaNěkterá rozhraní API systému Microsoft Windows je potřeba volat uvnitř vyhrazeného nebo trvalého vlákna. V fondu vláken byste se obecně měli vyhnout použití místního úložiště vlákna a zařazování asynchronních volání do fronty, které vyžadují trvalé vlákno, jako je regNotifyChangeKeyValue funkce. Tyto funkce je však možné zařadit do trvalého pracovního vlákna pomocí QueueUserWorkItem s možností WT_EXECUTEINPERSISTENTTHREAD. Volajícímu se zobrazí znalostní báze v ladicím programu.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Callback function.
- Parametr 2 - Kontext.
- Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Fond vláken
- ID zastavení: PERSISTED_THREAD_NEEDED
- Zastavte kód: 0x706
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Vlákno je ve stavu špinavé transakce.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud funkce zpětného volání zapomněla zavřít nebo obnovit aktuální popisovač transakce.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Callback function.
- Parametr 2 - Kontext.
- Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
- Parametr 4 - Transaction Handle.
- Testovací vrstva: Fond vláken
- ID zastavení: DIRTY_TRANSACTION_CONTEXT
- Zastavte kód: 0x707
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Tento stav fondu vláken má nevyvážené volání CoInit a CoUnInit.
Pravděpodobná příčinaTato stopa se vygeneruje, pokud volání zpět funkce volá CoInit a CoUnInit nevyvážené.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Callback function.
- Parametr 2 - Kontext.
- Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
- Parametr 4 - Vyvážené počty hovorů.
- Testovací vrstva: Fond vláken
- ID zastavení: DIRTY_COM_STATE
- Zastavte kód: 0x708
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Parametry objektu časovače jsou nekonzistentní. Tečka by měla být 0, pokud je při vytváření časovače zadáno WT_EXECUTEONLYONCE.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud doba signálu časovače není nulová, pokud je časovač nastaven na signál pouze jednou s příznakem WT_EXECUTEONLYONCE
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Zadané období.
- Parametr 2 - Flags specified.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Fond vláken
- ID zastavení: INCONSISTENT_TIMER_PARAMS
- Zastavte kód: 0x709
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Zámek zavaděče byl uložen vláknem fondu vláken v rámci zpětného volání.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud je zámek zavaděče uložen v rámci zpětného volání a není uvolněn při vrácení vlákna do fondu vláken.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Callback function.
- Parametr 2 - Kontext.
- Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Fond vláken
- ID zastavení: LOADER_LOCK_HELD
- Zastavte kód: 0x70A
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Upřednostňovaný jazyk je nastaven vláknem fondu vláken v rámci zpětného volání.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud je upřednostňovaný jazyk nastavený v rámci zpětného volání a při vrácení vlákna do fondu vláken se nevymaže.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Callback function.
- Parametr 2 - Kontext.
- Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Fond vláken
- ID zastavení: PREFERRED_LANGUAGES_SET
- Zastavte kód: 0x70B
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Priorita pozadí je nastavena vláknem fondu vláken v rámci zpětného volání.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud je v rámci zpětného volání nastavena priorita pozadí a při vrácení vlákna do fondu vláken se nezakážou.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Callback function.
- Parametr 2 - Kontext.
- Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Fond vláken
- ID zastavení: BACKGROUND_PRIORITY_SET
- Zastavte kód: 0x70C
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
TerminateThread() ve vlákně fondu vláken.
Pravděpodobná příčinaTato stopa se vygeneruje, pokud je terminateThread volána ve vlákně fondu vláken. Je zakázáno, protože bude systém nestabilní. Způsobí únik prostředků, zablokování nebo av.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Nepoužívá se.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: Fond vláken
- ID zastavení: ILLEGAL_THREAD_TERMINATION
- Zastavte kód: 0x70D
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Zásobník byl unwinded, když asynchronní vstupně-výstupní operace čeká na vyřízení.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud aplikace vydala vstupně-výstupní operaci, která používá proměnnou zásobníku a nečeká na dokončení vstupně-výstupních operací, což vede k poškození zásobníku. Ladění tohoto zastavení:
- dps <parametr4> pro zobrazení trasování zásobníku při vystavení vstupně-výstupních operací. Parametr1 označuje adresu založenou na zásobníku a parametr3 vlákno, které vydalo vstupně-výstupní operace.
- Parametr 1 - Adresa proměnné zásobníku použité v vstupně-výstupních operacích.
- Parametr 2 - Aktuální ukazatel zásobníku.
- Parametr 3 - Původní vlákno, které vydalo vstupně-výstupní operace.
- Parametr 4 - Trasování zásobníku při vydání vstupně-výstupních operací.
- Testovací vrstva: IO
- ID zastavení: ASYNCIO_STACK_UNWIND
- Zastavte kód: 0x800
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Zásobník byl poškozen při čekání na asynchronní vstupně-výstupní operaci.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud aplikace vydala vstupně-výstupní operaci, která používá proměnnou zásobníku a nečeká na dokončení vstupně-výstupních operací, což vede k poškození zásobníku. Ladění tohoto zastavení:
- dps <parametr4> pro zobrazení trasování zásobníku při vystavení vstupně-výstupních operací. Parametr1 označuje adresu založenou na zásobníku a parametr3 vlákno, které vydalo vstupně-výstupní operace.
- Parametr 1 -Adresa proměnné zásobníku použité v vstupně-výstupních operacích.
- Parametr 2 - Aktuální ukazatel zásobníku.
- Parametr 3 - Původní vlákno, které vydalo vstupně-výstupní operace.
- Parametr 4 - Trasování zásobníku při vydání vstupně-výstupních operací.
- Testovací vrstva: IO
- ID zastavení: ASYNCIO_CORRUPTED_STACK
- Zastavte kód: 0x801
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Použití uvolněné adresy v čekající vstupně-výstupní operaci.
Pravděpodobná příčinaTato zarážka se vygeneruje, pokud aplikace vydala vstupně-výstupní operaci a uvolnila paměť použitou v vstupně-výstupních operacích před dokončením vstupně-výstupních operací, což vede k poškození paměti atd. Ladění tohoto zastavení:
- dps <parameter4> – pro zobrazení trasování zásobníku při vydání vstupně-výstupních operací. Parametr1 označuje adresu použitou v vstupně-výstupních operacích. Parametr2 označuje, že se adresa uvolní, a parametr3 vlákno, které vydalo vstupně-výstupní operace.
- Parametr 1 -Adresa použitá v vstupně-výstupních operacích.
- Parametr 2 - Adresa je uvolněna.
- Parametr 3 - Původní vlákno, které vydalo vstupně-výstupní operace.
- Parametr 4 - Trasování zásobníku při vydání vstupně-výstupních operací.
- Testovací vrstva: IO
- ID zastavení: FREED_ADDRESS_IN_PENDINGIO
- Zastavte kód: 0x802
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Blok stavu vstupně-výstupních operací (PŘEKRYVNÝ) se opakovaně používá, zatímco přidružený vstupně-výstupní požadavek stále čeká na vyřízení.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud aplikace opakovaně používala blok stavu vstupně-výstupních operací (PŘEKRÝVAJÍCÍ se), zatímco vstupně-výstupní požadavek používající tento blok stavu vstupně-výstupních operací (OVERLAPPED) stále čeká na vyřízení. Ladění tohoto zastavení:
- Parametr dps <,> který zobrazí trasování zásobníku při vydání původního V/V. Parametr1 označuje adresu použitou v vstupně-výstupních operacích a parametru2 vlákna, které vydalo vstupně-výstupní operace.
- Parametr 1 -Adresa bloku stavu vstupně-výstupních operací (PŘEKRÝVAJÍCÍ SE).
- Parametr 2 - Původní vlákno, které vydalo vstupně-výstupní operace.
- Parametr 3 - Trasování zásobníku při vydání vstupně-výstupních operací.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: IO
- ID zastavení: REUSED_IOSTATUS_BLOCK
- Zastavte kód: 0x803
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Použití nepodporovaného příznaku FILE_ATTRIBUTE_NOT_CONTENT_INDEXED v souboru CreateFile
Pravděpodobná příčinaStará verze MSDN chybně zdokumentovala CreateFile jako podpůrné FILE_ATTRIBUTE_NOT_CONTENT_INDEXED. Pokud je tento příznak zamýšlený, měl by být nastavený pomocí jiných funkcí rozhraní API, jako jsou SetFileAttributes.
- ln <parametr1> – vyhledání volajícího createfile.
- Formát: – CreateFile při psaní %hs%ws s příznaky %08x %08x %08x
- Parametr 1 - Zpáteční adresa.
- Parametr 2 - Nepoužívá se.
- Parametr 3 - Nepoužívá se.
- Parametr 4 - Nepoužívá se.
- Testovací vrstva: IO
- ID zastavení: USING_BAD_CREATEFILE_FLAG
- Zastavte kód: 0x804
- Závažnost: Varování
- Jednorázová chyba:
- Zpráva o chybě: Žádný
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Došlo k úniku haldy.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud byla knihovna DLL vlastníka přidělení dynamicky uvolněna při vlastnictví prostředků.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Adresa nevraceného přidělení. Spusťte !haldu -p -a <adresu> a získejte další informace o přidělení.
- Parametr 2 - Adresujte trasování zásobníku přidělení. Spuštěním adresy> dps <zobrazte zásobník přidělení.
- Parametr 3 - Adresa názvu knihovny DLL vlastníka. Spuštěním du <adresy> načtěte název knihovny DLL.
- Parametr 4 - Základ knihovny DLL vlastníka. Spusťte .reload <dll_name> = <adresu> pro opětovné načtení knihovny DLL vlastníka. Další informace o načtených a uvolněných modulech získáte pomocí lm.
- Testovací vrstva: Únik
- ID zastavení: PŘÍDĚL
- Zastavte kód: 0x900
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Došlo k úniku rukojeti.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud byla knihovna DLL vlastníka popisovače dynamicky uvolněna při vlastnictví prostředků. Ladění tohoto zastavení: Spuštěním parametru !htrace1 získáte další informace o popisovači.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Hodnota unikajícího úchytu. Spuštěním popisovače> !htrace <získejte další informace o popisovači, pokud je povolené trasování popisovače.
- Parametr 2 - Adresujte trasování zásobníku přidělení. Spuštěním adresy> dps <zobrazte zásobník přidělení.
- Parametr 3 - Adresa názvu knihovny DLL vlastníka. Spuštěním du <adresy> načtěte název knihovny DLL.
- Parametr 4 - Základ knihovny DLL vlastníka. Spusťte .reload <dll_name> = <adresu> pro opětovné načtení knihovny DLL vlastníka. Další informace o načtených a uvolněných modulech získáte pomocí lm.
- Testovací vrstva: Únik
- ID zastavení: KLIKA
- Zastavte kód: 0x901
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Došlo k úniku klíče HKEY.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud byla knihovna DLL vlastníka klíče registru dynamicky uvolněna při vlastnictví prostředků.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Hodnota nevráceného klíče HKEY.
- Parametr 2 - Adresujte trasování zásobníku přidělení. Spuštěním adresy> dps <zobrazte zásobník přidělení.
- Parametr 3 - Adresa názvu knihovny DLL vlastníka. Spuštěním du <adresy> načtěte název knihovny DLL.
- Parametr 4 - Základ knihovny DLL vlastníka. Spusťte .reload <dll_name> = <adresu> pro opětovné načtení knihovny DLL vlastníka. Další informace o načtených a uvolněných modulech získáte pomocí lm.
- Testovací vrstva: Únik
- ID zastavení: REGISTR
- Zastavte kód: 0x902
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Došlo k úniku virtuální rezervace.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud byla knihovna DLL vlastníka virtuální rezervace dynamicky uvolněna při vlastnictví prostředků.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Nevracená adresa rezervace.
- Parametr 2 - Adresujte trasování zásobníku přidělení. Spuštěním adresy> dps <zobrazte zásobník přidělení.
- Parametr 3 - Adresa názvu knihovny DLL vlastníka. Spuštěním du <adresy> načtěte název knihovny DLL.
- Parametr 4 - Základ knihovny DLL vlastníka. Spusťte .reload <dll_name> = <adresu> pro opětovné načtení knihovny DLL vlastníka. Další informace o načtených a uvolněných modulech získáte pomocí lm.
- Testovací vrstva: Únik
- ID zastavení: VIRTUAL_RESERVATION
- Zastavte kód: 0x903
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Došlo k úniku BSTR.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud byla knihovna DLL vlastníka sysString dynamicky uvolněna při vlastnictví prostředků.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Adresa uniklého BSTR. Spusťte !haldu -p -a <adresu> a získejte další informace o přidělení.
- Parametr 2 - Adresujte trasování zásobníku přidělení. Spuštěním adresy> dps <zobrazte zásobník přidělení.
- Parametr 3 - Adresa názvu knihovny DLL vlastníka. Spuštěním du <adresy> načtěte název knihovny DLL.
- Parametr 4 - Základ knihovny DLL vlastníka. Spusťte .reload <dll_name> = <adresu> pro opětovné načtení knihovny DLL vlastníka. Další informace o načtených a uvolněných modulech získáte pomocí lm.
- Testovací vrstva: Únik
- ID zastavení: SYSSTRING
- Zastavte kód: 0x904
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Oznámení o napájení nebylo odregistrováno.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud knihovna DLL zaregistrovaná pro oznámení o napájení byla dynamicky uvolněna bez zrušení registrace.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Adresa registrace oznámení o napájení.
- Parametr 2 - Adresa trasování zásobníku registrace. Spuštěním adresy> dps <zobrazte zásobník přidělení.
- Parametr 3 - Adresa názvu knihovny DLL vlastníka. Spuštěním du <adresy> načtěte název knihovny DLL.
- Parametr 4 - Základ knihovny DLL vlastníka. Spusťte .reload <dll_name> = <adresu> pro opětovné načtení knihovny DLL vlastníka. Další informace o načtených a uvolněných modulech získáte pomocí lm.
- Testovací vrstva: Únik
- ID zastavení: POWER_NOTIFICATION
- Zastavte kód: 0x905
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Došlo k úniku přidělení modelu COM.
Pravděpodobná příčinaToto zastavení se vygeneruje, pokud byla knihovna DLL vlastníka přidělení modelu COM dynamicky uvolněna při vlastnictví prostředků.
Informace zobrazené nástrojem Application Verifier- Parametr 1 - Adresa nevraceného přidělení modelu COM. Spusťte !haldu -p -a <adresu> a získejte další informace o přidělení.
- Parametr 2 - Adresujte trasování zásobníku přidělení. Spuštěním adresy> dps <zobrazte zásobník přidělení.
- Parametr 3 - Adresa názvu knihovny DLL vlastníka. Spuštěním du <adresy> načtěte název knihovny DLL.
- Parametr 4 - Základ knihovny DLL vlastníka. Spusťte .reload <dll_name> = <adresu> pro opětovné načtení knihovny DLL vlastníka. Další informace o načtených a uvolněných modulech získáte pomocí lm.
- Testovací vrstva: Únik
- ID zastavení: COM_ALLOCATION
- Zastavte kód: 0x906
- Závažnost: Chyba
- Jednorázová chyba:
- Zpráva o chybě: Přestávka
- Protokol do souboru: Ano
- Vytvoření backtrace: Ano
Viz také
Ověřovatel aplikací – kódy stop a definice
Ověřovatel aplikací – Testování aplikací
Ověřovatel aplikací – testy v rámci ověřovatele aplikace