Sdílet prostřednictvím


Ověřovatel aplikací – Kódy stop – Základy

Následující kódy stop jsou obsaženy v základní sadě testů.

Podrobnosti o zastavení výjimek

Pokus o spuštění kódu v paměti, která není spustitelná (první šance).

pravděpodobné příčiny

Toto zastavení se vygeneruje, pokud se aplikace pokouší spustit kód z adresy, která není spustitelná nebo bezplatná. Ladění tohoto zastavení:

  • u <parameter2> – zrušení sestavení kódu viník
  • Parametr .exr3>< – zobrazení informací o výjimce
  • Parametr .cxr4 <> – zobrazení informací o kontextu výjimky
  • kb – zobrazí trasování zásobníku v době, kdy byla výjimka vyvolána.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Výjimky
  • ID zastavení: FIRST_CHANCE_ACCESS_VIOLATION_CODE
  • Zastavte kód: 650
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Zpracování podrobností o zastavení

Neplatná výjimka popisovače pro aktuální trasování zásobníku

pravděpodobné příčiny

Toto 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 k získání historie operací souvisejících s touto hodnotou popisovače použít rozšíření ladicího programu !htrace. Ve většině případů se po zavření použije hodnota popisovače.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 – Nepoužívá se.
  • Parametr 2 – Nepoužívá se.
  • Parametr 3 – Nepoužívá se.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Ovládá
  • ID zastavení: INVALID_HANDLE
  • Zastavte kód: 300
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Neplatný index TLS použitý pro aktuální trasování zásobníku

pravděpodobné příčiny

Toto 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á určitou hodnotu indexu TLS. K tomu může dojít za předpokladu, že vždy získáte hodnotu N, a proto není nutné volat TlsAlloc. Častěji je příčinou neinicializovaná proměnná.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Ovládá
  • ID zastavení: INVALID_TLS_VALUE
  • Zastavte kód: 301
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Neplatné parametry pro volání WaitForMultipleObjects.

pravděpodobné příčiny

Tato zarážka se vygeneruje, pokud funkce v horní části zásobníku s názvem WaitForMultipleObjects má hodnotu NULL jako adresu pole popisovačů, na které se má čekat, nebo s nulou jako počet popisovačů. Jednoduchý příkaz "kb" zobrazí funkci, která toto rozhraní API volá nesprávně.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Adresa objektu zpracovává vektor.
  • Parametr 2 - Počet popisovačů.
  • Parametr 3 – Nepoužívá se.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Ovládá
  • ID zastavení: INCORRECT_WAIT_CALL
  • Zastavte kód: 302
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Popisovač NULL předaný jako parametr. Je nutné použít platný popisovač.

pravděpodobné příčiny

Tato zarážka se vygeneruje, pokud funkce v horní části zásobníku předala rutinám systému popisovač NULL. Obvykle jednoduchý příkaz "kb" odhalí, jaká je hodnota předaného popisovače (musí to být jeden z parametrů, obvykle první).

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Using NULL handle
  • Parametr 2 - Nepoužívané
  • Parametr 3 - Nepoužívané
  • Parametr 4 - Nepoužívané

další informace
  • Testovací vrstva: Ovládá
  • ID zastavení: NULL_HANDLE
  • Zastavte kód: 303
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Čeká na popisovač vlákna v knihovně DllMain.

pravděpodobné příčiny

Toto zastavení se vygeneruje, pokud aktuální vlákno aktuálně spouští kód uvnitř funkce DllMain některé knihovny DLL načtené v aktuálním procesu a volá WaitForSingleObject nebo WaitForMultipleObjects čekání na popisovač vlákna ve stejném procesu. To s největší pravděpodobností vede k vzájemnému zablokování, protože popisovač vlákna nebude signalizovat, pokud se druhé vlákno ukončí. Když druhé vlákno volá ExitThread, pokusí se získat zámek zavaděče knihovny DLL a pak volat DllMain (DLL_THREAD_DETACH) pro všechny knihovny DLL v aktuálním procesu. Vzhledem k tomu, že zámek zavaděče vlastní první vlákno (ten, který čeká na popisovač vlákna), budou obě vlákna zablokovaná.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Závitový úchyt.
  • Parametr 2 – Nepoužívá se.
  • Parametr 3 – Nepoužívá se.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Ovládá
  • ID zastavení: WAIT_IN_DLLMAIN
  • Zastavte kód: 304
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Nesprávný typ objektu pro popisovač

pravděpodobné příčiny

Toto 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 semaphore handle as parametr generuje 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. V předchozím příkladu se zobrazí "Semaphore".
  • du <parameter3> – zobrazení typu objektu očekávaného rozhraním API. V předchozím příkladu je tento název "Event".
  • !htrace <parametr1> – může být užitečné, protože zobrazuje trasování zásobníku pro poslední operace otevření a zavření v tomto popisovači.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Ovládá
  • ID zastavení: INCORRECT_OBJECT_TYPE
  • Zastavte kód: 305
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Podrobnosti o zastavení haldy

Neznámá chyba.

pravděpodobné příčiny

K této zprávě může dojít v případě, že chybu nelze klasifikovat jiným způsobem. Právě teď se nepoužívá.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Nepoužívané
  • Parametr 2 - Nepoužívané
  • Parametr 3 - Nepoužívané
  • Parametr 4 - Nepoužívané

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: UNKNOWN_ERROR
  • Zastavte kód: 0x1
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Výjimka porušení přístupu

pravděpodobné příčiny

Toto je nejběžnější zastavení ověřovatele aplikace. Obvykle je příčinou chyba přetečení vyrovnávací paměti. Ověřovatel haldy umístí na konec přidělení haldy stránku, která není přístupná, a přetečení vyrovnávací paměti způsobí výjimku tím, že se na tuto stránku dotkne. K ladění tohoto zastavení identifikujte přístupovou adresu, která způsobila výjimku, a pak použijte následující příkaz ladicího programu:

  • !halda -p -a ACCESS_ADDRESS – tento příkaz poskytuje podrobnosti o povaze chyby a o tom, který blok haldy je přetečení. Poskytuje také trasování zásobníku pro přidělení bloku. Existují další příčiny tohoto zastavení, například přístup k bloku haldy po uvolnění. Stejný příkaz ladicího programu je pro tento případ užitečný.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Neplatná adresa způsobující výjimku
  • Parametr 2 - Code address executing the invalid access
  • Parametr 3 - Exception record
  • Parametr 4 - Kontextový záznam

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: ACCESS_VIOLATION
  • Zastavte kód: 0x2
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Přístup s více vlákny v haldě vytvořené s příznakem HEAP_NO_SERIALIZE

pravděpodobné příčiny

Halda vytvořená s příznakem HEAP_NO_SERIALIZE nemá být přístupná současně ze dvou vláken. Pokud se taková situace zjistí, zobrazí se tato zpráva. Typický způsob, jakým se tato situace plíží do programu, je propojením s jednouvláknovou verzí modulu C-runtime. Visual C++ může například staticky propojit takovou knihovnu při použití správných příznaků. Vývojáři pak na tyto podrobnosti zapomenou a použijí více vláken. Chyba je velmi obtížná při ladění v reálném životě, protože se zobrazí jako záhadná poškození dat.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Halda, ve které k operaci dojde.
  • Parametr 2 - ID vlákna pro aktuálního vlastníka kritické části haldy.
  • Parametr 3 - ID vlákna aktuálního vlákna, které se pokouší zadat haldu.
  • Parametr 4 - Nepoužívané

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: UNSYNCHRONIZED_ACCESS
  • Zastavte kód: 0x3
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Požadavek na extrémní velikost.

pravděpodobné příčiny

Tato zpráva se vygeneruje, pokud v operaci HeapAlloc nebo HeapReAlloc je velikost bloku vyšší než jakákoli rozumná hodnota. Obvykle se tato hodnota 0x80000000 na 32bitových platformách a výrazně větší na 64bitových platformách.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Halda, ve které k operaci dojde.
  • Parametr 2 - Size requested
  • Parametr 3 - Nepoužívané
  • Parametr 4 - Nepoužívané

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: EXTREME_SIZE_REQUEST
  • Zastavte kód: 0x4
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Úchyt haldy s nesprávným podpisem

pravděpodobné příčiny

Struktury haldy jsou označené magickou hodnotou. Pokud popisovač haldy použitý ve volání rozhraní haldy nemá tento vzor, bude tato zarážka generována. K této chybě může dojít v případě, že došlo k poškození interní struktury haldy (náhodné poškození) nebo se jednoduše jako popisovač haldy používá chybná hodnota. Pokud chcete získat seznam platných hodnot popisovače haldy, použijte následující příkaz ladicího programu:

  • !halda -p

Všimněte si, že pokud v operaci haldy jednoduše přepnete platný popisovač haldy s jinou platnou operací haldy, nebudete mít tuto stopu (popisovač bude po všem platný). Ověřovatel haldy však tuto situaci zjistí a hlásí ji SWITCHED_HEAP_HANDLE zastavit.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Úchyt haldy použitý při volání rozhraní haldy
  • Parametr 2 - Nepoužívané
  • Parametr 3 - Nepoužívané
  • Parametr 4 - Nepoužívané

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: BAD_HEAP_HANDLE
  • Zastavte kód: 0x5
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Poškozený ukazatel haldy nebo použití nesprávné haldy

pravděpodobné příčiny

K tomu obvykle dochází v případě, že se blok přidělí v jedné haldě a uvolní se v jiné. Pomocí příkazu ladicího programu !heap -p získáte seznam všech platných hodnot popisovače haldy. Nejběžnějším příkladem je přidělení msvcrt pomocí malloc spárované s dohodou jádra 32 pomocí heapFree.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Rukojeť haldy použitá ve volání.
  • Parametr 2 - Blok haldy zapojené do operace.
  • Parametr 3 - Velikost bloku haldy.
  • Parametr 4 - Halda, kde byl blok původně přidělen.

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: SWITCHED_HEAP_HANDLE
  • Zastavte kód: 0x6
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Blok haldy už byl uvolněn.

pravděpodobné příčiny

K této situaci dochází, pokud je blok uvolněn dvakrát. Uvolněné bloky jsou označeny speciálním způsobem a uchovávají se po dobu v zpožděné volné frontě. Pokud se program chyby pokusí znovu uvolnit blok, dojde k zachycení tohoto problému – za předpokladu, že blok nebyl vyřazen z zpožděné bezplatné fronty a jeho paměť se znovu použila pro další přidělení. Hloubka zpoždění volné fronty je v pořadí tisíců bloků, a proto existuje dobrá šance, že bude zachycena většina dvojitých volných.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 -  Úchyt haldy pro haldu, která vlastní blok.
  • Parametr 2 - Blok  haldy se zase uvolní.
  • Parametr 3 - Velikost bloku haldy.
  • Parametr 4 - Nepoužívané

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: DOUBLE_FREE
  • Zastavte kód: 0x7
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Poškozený blok haldy.

pravděpodobné příčiny

Jedná se o obecnou chybu vystavenou v případě, že poškození bloku haldy nelze umístit do konkrétnější kategorie.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Rukojeť haldy použitá ve volání.
  • Parametr 2 - Blok haldy zapojené do operace.
  • Parametr 3 - Velikost bloku haldy.
  • Parametr 4 - Reserved

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: CORRUPTED_HEAP_BLOCK
  • Zastavte kód: 0x8
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Pokus o zničení haldy procesu.

pravděpodobné příčiny

Jedná se o chybu při pokusu o zničení výchozí haldy procesu (ten vrácený rozhraním GetProcessHeap()).

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Rukojeť haldy použitá s heapDestroy.
  • Parametr 2 - Nepoužívané
  • Parametr 3 - Nepoužívané
  • Parametr 4 - Nepoužívané

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: DESTROY_PROCESS_HEAP
  • Zastavte kód: 0x9
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Neočekávaná výjimka vyvolaná v kódu haldy

pravděpodobné příčiny

Tato stopa se vygeneruje, pokud při provádění kódu správce haldy dojde k narušení přístupu v nelegitimní situaci. Existuje několik situací, kdy je to v pořádku, například při volání "HeapValidate()" nebo 'HeapSize()'. Informace o záznamu výjimky (třetí parametr) lze použít k vyhledání přesného kontextu výjimky. K tomu použijte následující příkazy ladicího programu:

  • dd parametr2 L2
  • .exr first_dword
  • second_dword .cxr

K tomuto zastavení obvykle dochází v případě, že v interních strukturách haldy dochází k náhodnému poškození.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Halda zapojená do operace.
  • Parametr 2 - Exception record.
  • Parametr 3 - Kontextový záznam.
  • Parametr 4 - Exception code (C0000005 – porušení přístupu)

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: UNEXPECTED_EXCEPTION
  • Zastavte kód: 0xA
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Při ověřování hlavičky bloku haldy došlo k výjimce.

pravděpodobné příčiny

K této situaci dochází, pokud ve skutečnosti nemůžeme určit žádný konkrétní typ poškození bloku. Dojde například v případě, že adresa bloku haldy předaná do volné operace haldy odkazuje na nepřístupnou paměťovou oblast (poškozený ukazatel, neinicializovaný ukazatel atd.).

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 -  Úchyt haldy pro haldu, která vlastní blok.
  • Parametr 2 -  Blok haldy, který je poškozen.
  • Parametr 3 - Velikost bloku nebo nuly, pokud nelze určit velikost.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: CORRUPTED_HEAP_BLOCK_EXCEPTION_RAISED_FOR_HEADER
  • Zastavte kód: 0xB
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Při ověřování bloku haldy došlo k výjimce.

pravděpodobné příčiny

K této situaci dochází, pokud ve skutečnosti nemůžeme určit žádný konkrétní typ poškození bloku. Pokud například během volné operace haldy předáte adresu, která odkazuje na nepřístupnou oblast paměti. K tomu může dojít také v případě, že nenajdeme blok mezi bloky haldy celé stránky a testujeme ho jako blok haldy světlé stránky.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Rukojeť haldy použitá ve volání.
  • Parametr 2 - Blok haldy zapojené do operace.
  • Parametr 3 - Velikost bloku haldy.
  • Parametr 4 - Vyhrazeno.

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: CORRUPTED_HEAP_BLOCK_EXCEPTION_RAISED_FOR_PROBING
  • Zastavte kód: 0xC
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Blok haldy je po uvolnění poškozen.

pravděpodobné příčiny

K této situaci dochází v případě, že se po uvolnění zapíše blok paměti.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 -  Úchyt haldy pro haldu, která vlastní blok.
  • Parametr 2 -  Blok haldy, který je poškozen.
  • Parametr 3 - Velikost bloku nebo nuly, pokud nelze určit velikost.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: CORRUPTED_HEAP_BLOCK_HEADER
  • Zastavte kód: 0xD
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Poškozený vzor infixu pro volný blok haldy.

pravděpodobné příčiny

Uvolněné bloky jsou někdy označeny jako nedostupné a program, na který se jich dotkne, dojde k porušení přístupu (jiné ověření se zastaví). V jinýchpřípadechch Nakonec ve FIFO módě bloky se opravdu uvolní. V tuto chvíli se zkontroluje vzor infixu a pokud byl změněn, dostanete tuto přestávku. Zásobník v okamžiku přestávky není relevantní. Potřebujete zjistit povahu bloku a kódu zkontrolovat kód, který může být nesprávný.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 -  Úchyt haldy pro haldu, která vlastní blok.
  • Parametr 2 - Blok  haldy se uvolní.
  • Parametr 3 - Velikost bloku haldy.
  • Parametr 4 - Vyhrazeno.

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: CORRUPTED_FREED_HEAP_BLOCK
  • Zastavte kód: 0xE
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Vzor poškozené přípony pro blok haldy

pravděpodobné příčiny

Nejčastěji k tomu dochází u chyb přetečení vyrovnávací paměti. Někdy ověřovatel aplikace umístí nepřístupné stránky na konec přidělení a přetečení vyrovnávací paměti způsobí narušení přístupu a někdy blok haldy následuje magický vzor. Pokud se tento vzor změní, když se blok uvolní, dostanete tuto přestávku. Tyto přestávky můžou být poměrně obtížné ladit, protože nemáte skutečný okamžik, kdy došlo k poškození. Máte přístup k volnému okamžiku (tj. "sem došlo k zastavení") a trasování zásobníku přidělení (!halda -p -a HEAP_ADDRESS)

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Rukojeť haldy použitá ve volání.
  • Parametr 2 - Blok haldy zapojené do operace.
  • Parametr 3 - Velikost bloku haldy.
  • Parametr 4 - Vyhrazeno.

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: CORRUPTED_HEAP_BLOCK_SUFFIX
  • Zastavte kód: 0xF
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Poškozený počáteční razítko pro blok haldy

pravděpodobné příčiny

K tomu dochází u podtečení vyrovnávací paměti.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Rukojeť haldy použitá ve volání.
  • Parametr 2 - Blok haldy zapojené do operace.
  • Parametr 3 - Velikost bloku haldy.
  • Parametr 4 - Poškozená hodnota kolku.

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: CORRUPTED_HEAP_BLOCK_START_STAMP
  • Zastavte kód: 0x10
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Poškozené koncové razítko bloku haldy

pravděpodobné příčiny

K tomu dochází u podtečení vyrovnávací paměti.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Rukojeť haldy použitá ve volání.
  • Parametr 2 - Blok haldy zapojené do operace.
  • Parametr 3 - Velikost bloku haldy.
  • Parametr 4 - Poškozená hodnota kolku.

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: CORRUPTED_HEAP_BLOCK_END_STAMP
  • Zastavte kód: 0x11
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Poškozený vzor předpony pro blok haldy

pravděpodobné příčiny

K tomu dochází u podtečení vyrovnávací paměti.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Rukojeť haldy použitá ve volání.
  • Parametr 2 - Blok haldy zapojené do operace.
  • Parametr 3 - Velikost bloku haldy.
  • Parametr 4 - Vyhrazeno.

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: CORRUPTED_HEAP_BLOCK_PREFIX
  • Zastavte kód: 0x12
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

První náhoda narušení přístupu pro aktuální trasování zásobníku.

pravděpodobné příčiny

Toto je nejběžnější zastavení ověřovatele aplikace. Obvykle je příčinou chyba přetečení vyrovnávací paměti. Ověřovatel haldy umístí na konec přidělení haldy stránku, která není přístupná, a přetečení vyrovnávací paměti způsobí výjimku tím, že se na tuto stránku dotkne. K ladění tohoto zastavení identifikujte přístupovou adresu, která způsobila výjimku, a pak použijte následující příkaz ladicího programu:

  • !halda -p -a ACCESS_ADDRESS

Tento příkaz poskytne podrobnosti o povaze chyby a o tom, jaký blok haldy se přetečí. Poskytne také trasování zásobníku pro přidělení bloku. Toto zastavení má několik dalších příčin, například přístup k bloku haldy po uvolnění. Stejný příkaz ladicího programu bude v tomto případě užitečný.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Neplatná adresa způsobující výjimku.
  • Parametr 2 - Code address executing the invalid access.
  • Parametr 3 - Exception record.
  • Parametr 4 - Kontextový záznam.

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: FIRST_CHANCE_ACCESS_VIOLATION
  • Zastavte kód: 0x13
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Počet seznamů hald procesu je neplatný.

pravděpodobné příčiny

K této zprávě může dojít, pokud při volání GetProcessHeaps správce haldy stránky zjistí některé interní nekonzistence. Příčinou může být náhodné poškození v prostoru procesu.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Skutečný počet hald.
  • Parametr 2 - Počet hald stránek.
  • Parametr 3 - Nepoužívané
  • Parametr 4 - Nepoužívané

další informace
  • Testovací vrstva: Hromady
  • ID zastavení: CORRUPTED_HEAP_LIST
  • Zastavte kód: 0x14
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Podrobnosti o zastavení úniku

Došlo k úniku haldy.

pravděpodobné příčiny

Toto zastavení se vygeneruje, pokud byla knihovna DLL vlastníka přidělení dynamicky uvolněna při vlastnictví prostředků.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Únik
  • ID zastavení: PŘÍDĚL
  • Zastavte kód: 0x900
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Došlo k úniku rukojeti.

pravděpodobné příčiny

Toto 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é ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Únik
  • ID zastavení: KLIKA
  • Zastavte kód: 0x901
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Došlo k úniku klíče HKEY.

pravděpodobné příčiny

Toto zastavení se vygeneruje, pokud byla knihovna DLL vlastníka klíče registru dynamicky uvolněna při vlastnictví prostředků.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Únik
  • ID zastavení: REGISTR
  • Zastavte kód: 0x902
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Došlo k úniku virtuální rezervace.

pravděpodobné příčiny

Toto zastavení se vygeneruje, pokud byla knihovna DLL vlastníka virtuální rezervace dynamicky uvolněna při vlastnictví prostředků.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Únik
  • ID zastavení: VIRTUAL_RESERVATION
  • Zastavte kód: 0x903
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Došlo k úniku BSTR.

pravděpodobné příčiny

Toto zastavení se vygeneruje, pokud byla knihovna DLL vlastníka sysString dynamicky uvolněna při vlastnictví prostředků.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Únik
  • ID zastavení: SYSSTRING
  • Zastavte kód: 0x904
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Oznámení o napájení nebylo odregistrováno.

pravděpodobné příčiny

Toto zastavení se vygeneruje, pokud knihovna DLL zaregistrovaná pro oznámení o napájení byla dynamicky uvolněna bez zrušení registrace.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Únik
  • ID zastavení: POWER_NOTIFICATION
  • Zastavte kód: 0x905
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Uzamčení podrobností o zastavení

Vlákno nemůže vlastnit kritický oddíl.

pravděpodobné příčiny

Toto 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 <parametr2> – 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Uvolňování knihovny DLL obsahující aktivní kritickou část

pravděpodobné příčiny

Toto 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Uvolnění bloku haldy obsahující aktivní kritický oddíl

pravděpodobné příčiny

Toto 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á).

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Dvojitě inicializovaný nebo poškozený kritický oddíl

pravděpodobné příčiny

Tato 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Volné paměti obsahující aktivní kritickou část.

pravděpodobné příčiny

Tato 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:</p.>

  • !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é ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Poškozená kritická část.

pravděpodobné příčiny

Tato 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

Informace zobrazené ověřovatelem aplikací
  • 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

další informace
  • Testovací vrstva: Zámky
  • ID zastavení: LOCK_CORRUPTED
  • Zastavte kód: 0x205
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Neplatné vlákno vlastníka kritického oddílu

pravděpodobné příčiny

Toto 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Neplatný počet rekurzí kritického oddílu

pravděpodobné příčiny

Tato 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Odstranění kritického oddílu s neplatným počtem zámků

pravděpodobné příčiny

Toto 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Kritická část je převolněna nebo poškozena.

pravděpodobné příčiny

Tato 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Kritický oddíl není inicializován.

pravděpodobné příčiny

Toto 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Kritická část je již inicializována.

pravděpodobné příčiny

Tato 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Uvolnění virtuální paměti obsahující aktivní kritickou část.

pravděpodobné příčiny

Toto 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Zrušte mapování oblasti paměti obsahující aktivní kritickou část.

pravděpodobné příčiny

Toto 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Aktuální vlákno nevlastní žádné kritické oddíly.

pravděpodobné příčiny

Tato 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 \<parameter2\> 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 \<parameter2\> není nula (jedná se o záporné celé číslo), jsou interní datové struktury ověřovatele pravděpodobně poškozeny.

Informace zobrazené ověřovatelem aplikací
  • 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é

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Použití kritického oddílu, který je soukromý pro jinou knihovnu DLL.

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • Parametr 1 - Kritická adresa oddílu.
  • Parametr 2 – Nepoužívá se.
  • Parametr 3 - Nepoužívané
  • Parametr 4 - Nepoužívané

další informace
  • Testovací vrstva: Zámky
  • ID zastavení: LOCK_PRIVATE
  • Zastavte kód: 0x215
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Podrobnosti o zastavení SRWLock

Zámek SRW není inicializován.

pravděpodobné příčiny

Toto zastavení se vygeneruje, pokud se vlákno pokouší použít zámek SRW (Param1), který není inicializován. K ladění tohoto zastavení 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 se měl inicializovat pomocí InicializaceSRWLock, než se dá použít.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - SRW Lock
  • Parametr 2 - Nepoužívané
  • Parametr 3 - Nepoužívané
  • Parametr 4 - Nepoužívané

další informace
  • Testovací vrstva: SRWLock
  • ID zastavení: NOT_INITIALIZED
  • Zastavte kód: 0x250
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Zámek SRW je již inicializován.

pravděpodobné příčiny

Toto 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. Ladění tohoto zastavení:

  • 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.

Informace zobrazené ověřovatelem aplikací
  • 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é

další informace
  • Testovací vrstva: SRWLock
  • ID zastavení: ALREADY_INITIALIZED
  • Zastavte kód: 0x251
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Neshoda Acquire-Release na zámku SRW.

pravděpodobné příčiny

Tato 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í. Ladění tohoto zastavení:

  • 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

Informace zobrazené ověřovatelem aplikací
  • 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é

další informace
  • Testovací vrstva: SRWLock
  • ID zastavení: MISMATCHED_ACQUIRE_RELEASE
  • Zastavte kód: 0x252
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Zámek SRW se získává rekurzivně stejným vláknem.

pravděpodobné příčiny

Toto 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í získat 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é zase čeká na vlákno B, což způsobuje cyklický čekání, a proto zabloková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á rekurzivně.
  • dps <parameter2> – získání trasování zásobníku pro první získání.

Informace zobrazené ověřovatelem aplikací
  • 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é

další informace
  • Testovací vrstva: SRWLock
  • ID zastavení: RECURSIVE_ACQUIRE
  • Zastavte kód: 0x253
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Vlákno, které se ukončuje nebo je ukončeno, vlastní zámek SRW.

pravděpodobné příčiny

Tato 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. Ladění jeho zastavení:

  • 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

Informace zobrazené ověřovatelem aplikací
  • 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é

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Tento vlákno nezískalo uvolnění zámku SRW.

pravděpodobné příčiny

Tato 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. Ladění tohoto zastavení:

  • 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

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: SRWLock
  • ID zastavení: INVALID_OWNER
  • Zastavte kód: 0x255
  • závažnost : upozornění 
  • jednorázová chyba: 
  • Zpráva o chybě : Žádná
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Uvolnění paměti obsahuje aktivní zámek SRW.

pravděpodobné příčiny

Toto 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í. Ladění tohoto zastavení:

  • 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

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: SRWLock
  • ID zastavení: IN_FREED_MEMORY
  • Zastavte kód: 0x256
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Knihovna DLL, která je uvolněna, obsahuje aktivní zámek SRW.

pravděpodobné příčiny

Toto 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í. Ladění tohoto zastavení:

  • 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

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: SRWLock
  • ID zastavení: IN_UNLOADED_DLL
  • Zastavte kód: 0x257
  • závažnost : upozornění 
  • jednorázová chyba: 
  • Zpráva o chybě : Žádná
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Podrobnosti o zastavení paměti

Uvolnění bloku virtuální paměti s neplatnou velikostí nebo počáteční adresou

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • Parametr 1 - Alokační základní adresa.
  • Parametr 2 - Velikost oblasti paměti.
  • Parametr 3 – Nepoužívá se.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: INVALID_FREEMEM
  • Zastavte kód: 0x600
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Nesprávné virtuální volání alokací

pravděpodobné příčiny

Toto 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é ověřovatelem aplikací
  • 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é

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: INVALID_ALLOCMEM
  • Zastavte kód: 0x601
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Nesprávné volání zobrazení mapy

pravděpodobné příčiny

Toto 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é ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: INVALID_MAPVIEW
  • Zastavte kód: 0x602
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Zbídání neplatné adresy

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • Parametr 1 - Počáteční adresa.
  • Parametr 2 - Velikost bloku paměti.
  • Parametr 3 - Neplatná adresa.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: PROBE_INVALID_ADDRESS
  • Zastavte kód: 0x603
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Probing free memory.

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: PROBE_FREE_MEM
  • Zastavte kód: 0x604
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Probing a guard page.

pravděpodobné příčiny

Toto 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é ověřovatelem aplikací
  • Parametr 1 - Počáteční adresa.
  • Parametr 2 - Velikost bloku paměti.
  • Parametr 3 - Adresa strážné stránky.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: PROBE_GUARD_PAGE
  • Zastavte kód: 0x605
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Probing NULL address.

pravděpodobné příčiny

Toto 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ý:

void Use(PVOID p);

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é ověřovatelem aplikací
  • Parametr 1 – Nepoužívá se.
  • Parametr 2 – Nepoužívá se.
  • Parametr 3 – Nepoužívá se.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: PROBE_NULL
  • Zastavte kód: 0x606
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Sondování bloku paměti s neplatnou počáteční adresou nebo velikostí

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • Parametr 1 - Počáteční adresa.
  • Parametr 2 - Velikost bloku paměti.
  • Parametr 3 – Nepoužívá se.
  • Parametr 4 – Nepoužívá se.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Uvolnění knihovny DLL s neplatnou velikostí nebo počáteční adresou

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: INVALID_DLL_RANGE
  • Zastavte kód: 0x608
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Uvolnění bloku paměti uvnitř rozsahu adres zásobníku aktuálního vlákna

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Nesprávný parametr FreeType pro operaci VirtualFree.

pravděpodobné příčiny

Toto 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é ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: INVALID_FREE_TYPE
  • Zastavte kód: 0x60A
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Pokoušíte se uvolnit blok virtuální paměti, který je již volný.

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • Parametr 1 - Adresa bloku paměti.
  • Parametr 2 – Nepoužívá se.
  • Parametr 3 – Nepoužívá se.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: MEM_ALREADY_FREE
  • Zastavte kód: 0x60B
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Nesprávný parametr Size pro operaci VirtualFree (MEM_RELEASE).

pravděpodobné příčiny

Toto 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é ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: INVALID_FREE_SIZE
  • Zastavte kód: 0x60C
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Neočekávaná výjimka vyvolaná v rutině vstupního bodu knihovny DLL

pravděpodobné příčiny

Toto 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*\>** – pro zobrazení názvu knihovny DLL. - **.exr \<*parametr2*\>** – pro zobrazení informací o výjimce. - **.cxr \<*parameter3*\>** následované **kb** – zobrazení informací o kontextu výjimky a trasování zásobníku po dobu, kdy byla výjimka vyvolána. - **\<*parameter4*\>** je adresa interní struktury ověřovatele a nemá pro většinu uživatelů ověřovatele žádný význam.

Informace zobrazené ověřovatelem aplikací
  • 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č

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: DLL_UNEXPECTED_EXCEPTION
  • Zastavte kód: 0x60D
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Neočekávaná výjimka vyvolaná ve funkci vlákna

pravděpodobné příčiny

Toto 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.
  • Parametr .exr2>< – zobrazení informací o výjimce
  • Parametr .cxr3 <> následovaný kb – zobrazení informací o kontextu výjimky

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: THREAD_UNEXPECTED_EXCEPTION
  • Zastavte kód: 0x60E
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Při sondování paměti došlo k neočekávané výjimce.

pravděpodobné příčiny

Pokud 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> obvykle bude C0000005, porušení přístupu.
  • Parametr .exr2>< – 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

Informace zobrazené ověřovatelem aplikací
  • 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é

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: PROBE_UNEXPECTED_EXCEPTION
  • Zastavte kód: 0x60F
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Probíhá pokus o resetování adresy NULL.

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • Parametr 1 – Nepoužívá se.
  • Parametr 2 – Nepoužívá se.
  • Parametr 3 – Nepoužívá se.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: INVALID_MEM_RESET
  • Zastavte kód: 0x610
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Uvolnění bloku paměti haldy uvnitř rozsahu adres zásobníku aktuálního vlákna

pravděpodobné příčiny

Tato 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 zjistit, 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é ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Zrušte mapování oblasti paměti uvnitř rozsahu adres zásobníku aktuálního vlákna.

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Nesprávná RTL_RESOURCE adresa.

pravděpodobné příčiny

Toto 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. *Parametr1* je použitá nesprávná adresa a viník je na trasování zásobníku (zobrazte ji s kB).

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Adresa.
  • Parametr 2 – Nepoužívá se.
  • Parametr 3 – Nepoužívá se.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: INVALID_RESOURCE_ADDRESS
  • Zastavte kód: 0x614
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Neplatná kritická adresa oddílu

pravděpodobné příčiny

Toto 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í. *Parametr1* je použitá nesprávná adresa a viník je na trasování zásobníku (zobrazte ji s kB).

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Adresa.
  • Parametr 2 – Nepoužívá se.
  • Parametr 3 – Nepoužívá se.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: INVALID_CRITSECT_ADDRESS
  • Zastavte kód: 0x615
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Pokus o spuštění kódu v paměti, která není spustitelná.

pravděpodobné příčiny

Toto 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Při inicializaci výstupní vyrovnávací paměti došlo k neočekávané výjimce.

pravděpodobné příčiny

Toto 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: OUTBUFF_UNEXPECTED_EXCEPTION
  • Zastavte kód: 0x617
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Při pokusu o vyhledání velikosti bloku haldy došlo k neočekávané výjimce.

pravděpodobné příčiny

Pokud 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Uvolnění bloku paměti s neplatnou počáteční adresou

pravděpodobné příčiny

Toto 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Zrušení mapování bloku paměti s neplatnou počáteční adresou

pravděpodobné příčiny

Toto 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: INVALID_UNMAPVIEW_START_ADDRESS
  • Zastavte kód: 0x619
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Neočekávaná výjimka vyvolaná ve funkci zpětného volání fondu vláken

pravděpodobné příčiny

Toto 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.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Exception code
  • Parametr 2 - Exception record. Zobrazení pomocí souboru .exr
  • Parametr 3 - Kontextový záznam. Zobrazení pomocí .cxr
  • Parametr 4 - Nepoužívané

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: THREADPOOL_UNEXPECTED_EXCEPTION
  • Zastavte kód: 0x61B
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Kód v paměti, která není spustitelná

pravděpodobné příčiny

Toto 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Vytváření spustitelné haldy

pravděpodobné příčiny

Toto zastavení se vygeneruje, pokud aplikace vytváří spustitelné haldy. Může to být bezpečnostní riziko.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 – Nepoužívá se.
  • Parametr 2 – Nepoužívá se.
  • Parametr 3 – Nepoužívá se.
  • Parametr 4 – Nepoužívá se.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: EXECUTABLE_HEAP
  • Zastavte kód: 0x1D
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Přidělování spustitelné paměti.

pravděpodobné příčiny

Toto zastavení se vygeneruje, pokud aplikace přiděluje spustitelné paměti. Může to být bezpečnostní riziko.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: Paměť
  • ID zastavení: EXECUTABLE_MEMORY
  • Zastavte kód: 0x1E
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Podrobnosti o zastavení protokolu TLS

Uvolnění knihovny DLL, která přidělila index TLS, který nebyl uvolněn.

pravděpodobné příčiny

Toto 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.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • Testovací vrstva: TLS
  • ID zastavení: TLS_LEAK
  • Zastavte kód: 0x350
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Poškozená struktura ověřovače TLS.

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • Parametr 1 - TEB adresa.
  • Parametr 2 - Očekávaná adresa TEB.
  • Parametr 3 - THREAD ID.
  • Parametr 4 - Očekávané ID vlákna.

další informace
  • Testovací vrstva: TLS
  • ID zastavení: CORRUPTED_TLS
  • Zastavte kód: 0x351
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Použití neplatného indexu TLS

pravděpodobné příčiny

Toto 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í nebo zrušení zpětného volání
  • T1: TlsFree
  • T2: Volání zpětného volání běží a volá TlsSetValue
  • T1: Uvolnění dll

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - TLS index
  • Parametr 2 - Nepoužívá se.
  • Parametr 3 - Nepoužívá se.
  • Parametr 4 - Nepoužívá se.

další informace
  • Testovací vrstva: TLS
  • ID zastavení: INVALID_TLS_INDEX
  • Zastavte kód: 0x352
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Podrobnosti o zastavení fondu vláken

Priorita tohoto vlákna fondu vláken byla změněna.

pravděpodobné příčiny

Toto zastavení se vygeneruje, pokud se při vrácení do fondu vláken změní priorita vlákna.

Informace zobrazené ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Spřažení tohoto vlákna fondu vláken bylo změněno.

pravděpodobné příčiny

Toto zastavení se vygeneruje, pokud se při vrácení do fondu vláken změní spřažení vlákna.

Informace zobrazené ověřovatelem aplikací
  • 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í.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Nezpracované msg ve fondu msg aktuálního vlákna.

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • 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> .

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Nezařazené okno patří do aktuálního vlákna.

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • 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.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

ExitThread() nebo TerminateThread() ve vlákně fondu vláken.

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • Parametr 1 - Callback function.
  • Parametr 2 - Kontext.
  • Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
  • Parametr 4 - Nepoužívá se.

další informace
  • Testovací vrstva: Fond vláken
  • ID zastavení: ILLEGAL_THREAD_TERMINATION
  • Zastavte kód: 0x704
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Vlákno je ve stavu zosobnění, když se vrátí do vlákna fondu vláken.

pravděpodobné příčiny

Toto 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é ověřovatelem aplikací
  • Parametr 1 - Callback function.
  • Parametr 2 - Kontext.
  • Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
  • Parametr 4 - Nepoužívá se.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Volá se funkce, která vyžaduje trvalé vlákno.

pravděpodobné příčiny

Ně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é ověřovatelem aplikací
  • Parametr 1 - Callback function.
  • Parametr 2 - Kontext.
  • Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
  • Parametr 4 - Nepoužívá se.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Vlákno je ve stavu špinavé transakce.

pravděpodobné příčiny

Toto zastavení se vygeneruje, pokud funkce zpětného volání zapomněla zavřít nebo obnovit aktuální popisovač transakce.

Informace zobrazené ověřovatelem aplikací
  • Parametr 1 - Callback function.
  • Parametr 2 - Kontext.
  • Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
  • Parametr 4 - Transaction Handle.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Tento stav fondu vláken má nevyvážené volání CoInit a CoUnInit.

pravděpodobné příčiny

Tato stopa se vygeneruje, pokud volání zpět funkce volá CoInit a CoUnInit nevyvážené.

Informace zobrazené ověřovatelem aplikací
  • 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ů.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit 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říčiny

Tato 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é ověřovatelem aplikací
  • Parametr 1 - Zadané období.
  • Parametr 2 - Flags specified.
  • Parametr 3 - Nepoužívá se.
  • Parametr 4 - Nepoužívá se.

další informace
  • 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řerušení 
  • Protokol do souboru: ano
  • Vytvořit 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říčiny

Toto 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é ověřovatelem aplikací
  • Parametr 1 - Callback function.
  • Parametr 2 - Kontext.
  • Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
  • Parametr 4 - Nepoužívá se.

další informace
  • Testovací vrstva: Fond vláken
  • ID zastavení: LOADER_LOCK_HELD
  • Zastavte kód: 0x7A
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Upřednostňovaný jazyk je nastaven vláknem fondu vláken v rámci zpětného volání.

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • Parametr 1 - Callback function.
  • Parametr 2 - Kontext.
  • Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
  • Parametr 4 - Nepoužívá se.

další informace
  • Testovací vrstva: Fond vláken
  • ID zastavení: PREFERRED_LANGUAGES_SET
  • Zastavte kód: 0x7B
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Priorita pozadí je nastavena vláknem fondu vláken v rámci zpětného volání.

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • Parametr 1 - Callback function.
  • Parametr 2 - Kontext.
  • Parametr 3 - Threadpool Object allocation stack trace, use dps to dump it.
  • Parametr 4 - Nepoužívá se.

další informace
  • Testovací vrstva: Fond vláken
  • ID zastavení: BACKGROUND_PRIORITY_SET
  • Zastavte kód: 0x7C
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

TerminateThread() ve vlákně fondu vláken.

pravděpodobné příčiny

Tato 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é ověřovatelem aplikací
  • Parametr 1 - Nepoužívá se.
  • Parametr 2 - Nepoužívá se.
  • Parametr 3 - Nepoužívá se.
  • Parametr 4 - Nepoužívá se.

další informace
  • Testovací vrstva: Fond vláken
  • ID zastavení: ILLEGAL_THREAD_TERMINATION
  • Zastavte kód: 0x7D
  • závažnost : chyba 
  • jednorázová chyba: 
  • Zpráva o chybě : přerušení 
  • Protokol do souboru: ano
  • Vytvořit backtrace: ano

Viz také

Application Verifier – kódy stop a definice

Application Verifier – přehled

Application Verifier – funkce

Application Verifier – Testování aplikací

Application Verifier – testy v rámci

Application Verifier – Ladění ověřovatele aplikací zastaví

application Verifier – nejčastější dotazy