Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az Application Verifier (AppVerifier) egy futtatókörnyezet-ellenőrző eszköz nem felügyelt kódhoz, amely segít megtalálni a finom programozási hibákat, a biztonsági problémákat és a felhasználói fiókok korlátozott jogosultsági problémáit, amelyek a normál alkalmazástesztelési technikákkal nehezen azonosíthatók.
Megbízható Windows-alkalmazások kézbesítése:
- Tesztelje a nem felügyelt (natív) kódban írt alkalmazásokat az Application Verifierrel a hibakereső alatt, és teljes oldalú halom használatával, mielőtt az ügyfelek számára közzétenné.
- Kövesse az Application Verifier által megadott lépéseket a hibás feltételek megoldásához.
- Az alkalmazás kiadása után rendszeresen monitorozza az összegyűjtött alkalmazáshibákról szóló jelentéseket, például ha elérhető a Windows hibajelentése.
A szálkészlet-ellenőrzések alapértelmezés szerint engedélyezve vannak az "Alapszintű" ellenőrzés címsorában. Mivel ez szerepel az alapértelmezett beállításban, a felhasználóknak csak az Application Verifiert kell futtatniuk a kódjukon az alapértelmezett beállításokkal, hogy kihasználhassák ezeket és más fontos ellenőrzéseket.
Az Application Verifier konfigurálása
Hibakereső beállítása
Az ellenőrzött alkalmazásnak felhasználói módú hibakeresővel kell futnia, vagy a rendszernek kernel-hibakereső alatt kell futnia, mivel hiba esetén hiba esetén hibakeresővé válik. További hibakeresési részletekért lásd Application Verifier – Hibakeresési alkalmazás-ellenőrző leáll.
Beállítások
Az Application Verifier nem engedélyezhető egy futó folyamathoz. Ennek eredményeképpen meg kell adnia az alábbi beállításokat, majd el kell indítania az alkalmazást. A beállítások állandóak, amíg explicit módon nem törlődnek. Ezért függetlenül attól, hogy hányszor indít el egy alkalmazást, az AppVerifier engedélyezésével kezdődik, amíg a beállítások nem törlődnek.
Az Application Verifier alapszintű tesztje
Az alábbi forgatókönyvek az ajánlott parancssori és felhasználói felületi beállításokat szemléltetik. Ezeket minden olyan teszt során futtatni kell, amely a kódot gyakorolja a teljes lefedettség biztosítása érdekében. Az ilyen forgatókönyvek elvárása, hogy az alkalmazás ne váljon hibakeresővé, és az összes teszt ugyanolyan átviteli sebességgel haladjon át, mint amikor az AppVerifier engedélyezve van.
Engedélyezze a hitelesítőt a tesztelni kívánt alkalmazás(ok) számára. A parancssorból: appverif /verify MyApp.exe.
A felhasználói felületen: Az alkalmazás hozzáadásához kattintson a jobb gombbal az Alkalmazások területre, és válassza az Alkalmazás hozzáadása lehetőséget. Válassza ki az Alapismeretek lehetőséget a Tesztek területen. Kattintson a Mentés gombra.
Megjegyzések:
A /verify lehetővé teszi az alapszintű teszteket
HA DLL-t tesztel, az Application Verifier-t engedélyezni kell a DLL-t használó teszt végrehajtásához.
Az ellenőrzési rétegeket külön futtassa. Az egyik munkamenetben például az összes alapszintű, a másikon pedig az összes LuaPriv-ellenőrzést engedélyezi.
Futtassa az összes tesztet az alkalmazás gyakorlása során.
Elemezze a hibakeresők által észlelt törés(ek)et. Ha szünet következik be, meg kell értenie és ki kell javítania. MEGJEGYZÉS: A súgó tartalma részletesen ismerteti a töréseket és azok kivizsgálását.
Ha végzett, törölje az összes beállítást. A parancssorból: appverif /n MyApp.exe.
A felhasználói felületen távolítsa el az alkalmazást a jobb gombbal az Alkalmazások területen, majd válassza az Alkalmazás törlése lehetőséget. Ezután kattintson a Mentés gombra.
Halom sérülése
Közel 10% alkalmazás összeomlása a Windows-rendszereken a halom sérülésének köszönhető. Ezek az összeomlások szinte lehetetlen hibakeresés után a tény. Ezeknek a problémáknak a elkerülésére a legjobb módszer az Application Verifierben található laphomok funkcióinak tesztelése. A Page Heapnak két íze van: "Full" és "Light". A teljes érték az alapértelmezett; A hibakereső azonnal leállítja a hibakeresőt a sérülés észlelésekor. Ezt a funkciót a hibakereső alatt kell futtatni. Ugyanakkor ez is a legnagyobb erőforrásigényű. Ha egy felhasználó időzítési problémákat tapasztal, és már futtatott egy forgatókönyvet a "Teljes" oldal halom alatt, a "Világos" értékre állítása valószínűleg orvosolja ezeket a problémákat. Emellett a Light Page Heap nem összeomlik, amíg a folyamat le nem lép. Veremkövetést biztosít a kiosztáshoz, de a diagnosztizálás jelentősen tovább tarthat, mint a teljes megfelelője kihasználása.
Az AppVerifier alacsony erőforrás-szimuláció használata (hibainjektálás)
Ebben a forgatókönyvben az az elvárás, hogy az alkalmazás ne törjön hibakeresővé. Ha nem tör be a hibakeresőbe, az azt jelenti, hogy nincs olyan hiba, amelyet meg kell oldania.
A tesztek áthaladási sebessége jelentősen csökkenhet, mivel véletlenszerű hibainjektálásokat vezetnek be a normál működésbe.
Engedélyezze az Application Verifier alacsony erőforrás-szimulációját (hibainjektálás) az alkalmazás(ok)hoz. A parancssorból: Appverif /verify MyApp.exe /faults. A felhasználói felületen: Az alkalmazás hozzáadásához kattintson a jobb gombbal az Alkalmazások területre, és válassza az Alkalmazás hozzáadása lehetőséget. Válassza ki az Alacsony erőforrás-szimulációt a Tesztek területen. Kattintson a Mentés gombra.
Megjegyzés: HA DLL-t tesztel, a teljes folyamat helyett alacsony erőforrás-szimulációt (hibainjektálást) alkalmazhat egy adott DLL-en. A parancssor formátuma a következő:
appverif /verify TARGET [/faults [PROBABILITY [TIMEOUT [DLL …]]]]
Példa:
appverif /verify mytest.exe /faults 50000 1000 d3d9.dll
Az összes teszt futtatása az alkalmazás gyakorlása során
Elemezze a hibakeresők által észlelt törés(ek)et. Ha szünet következik be, meg kell értenie és ki kell javítania.
Ha végzett, törölje az összes beállítást. A parancssorból: appverif /n MyApp.exe. A felhasználói felületen: távolítsa el az alkalmazást a jobb gombbal az Alkalmazások területen, majd válassza az Alkalmazás törlése lehetőséget, majd kattintson a Mentés gombra.
Megjegyzés: A hibainjektálási gyakorlatokkal való futtatás nagyrészt különböző kódútvonalakat jelent egy alkalmazásban, ezért mindkét forgatókönyvet futtatni kell az AppVerifier teljes kihasználtsága érdekében.
Az Application Verifier használata a WOW64 használatával
Az Application Verifier 32 bites vagy 64 bites verziójával ellenőrizheti a WOW64 alatt futó 32 bites alkalmazást.
AppVerifier-adatok elemzése
Az AppVerifier-elemzés során létrehozott összes adat bináris formátumban van tárolva az %USERPROFILE%\AppVerifierLogs mappában. Ezek a naplók ezután a felhasználói felületen vagy a parancssoron keresztül XML-fájllá alakíthatók további elemzés céljából.
Az XML-fájlok megtekintéséhez bármilyen eszközzel megtekintheti az XML-fájlt, például importálhat a Microsoft Excelbe – Importálhatja az XML-fájlt az Excelbe, és szűrők vagy kimutatástáblák használatával átrendezheti és elemezheti az összegyűjtött adatokat.
A parancssor használata
Az Application Verifier a felhasználói felületen vagy parancssori beállítások használatával használható.
Az alábbiakban példákat talál a parancssor használatára (az alábbiakban a részletek találhatók):
appverif /verify TARGET [/faults [PROBABILITY [TIMEOUT [DLL …]]]]
appverif /verify notepad
appverif -enable LAYER … -for TARGET ... [-with [LAYER].PROPERTY=[VALUE] …]
appverif -disable LAYER ... -for TARGET ...
appverif -query LAYER ... -for TARGET ...
appverif –configure STOP ... -for TARGET ... [-with STOPPROPERTY=[VALUE] …]
appverif –logtofile {enable|disable}
Az Application Verifier engedélyezése egy adott ellenőrzési réteghez két alkalmazáshoz:
appverif –enable Heaps Locks –for notepad.exe iexplore.exe
Két X és Y nevű réteg engedélyezése a cél test.exe X.DebugLevel és Y.DebugLevel tulajdonsággal:
appverif –enable X Y –for test.exe –with X.DebugLevel=1 Y.DebugLevel=2
Az alkalmazáson futtatott összes ellenőrzés letiltása:
appverif -disable * -for notepad.exe
vagy
appverif -delete settings -for notepad.exe
Az Application Verifier naplózásának globális engedélyezése vagy letiltása az összes folyamat esetében:
appverif –logtofile enable
appverif –logtofile disable
A naplózás alapértelmezés szerint minden folyamat esetében engedélyezve van.
Application Verifier parancssori szintaxis
Application Verifier parancssori használata:
-enable TEST ... -for TARGET ... [-with [TEST.]PROPERTY=VALUE ...]
-disable TEST ... -for TARGET ...
-query TEST ... -for TARGET ...
-configure STOP ... -for TARGET ... -with PROPERTY=VALUE...
-verify TARGET [-faults [PROBABILITY [TIMEOUT [DLL ...]]]]
-export log -for TARGET -with To=XML_FILE [Symbols=SYMBOL_PATH] [StampFrom=LOG_STAMP] [StampTo=LOG_STAMP] [Log=RELATIVE_TO_LAST_INDEX]
-delete {logs|settings} -for TARGET ...
-stamp log -for TARGET -with Stamp=LOG_STAMP [Log=RELATIVE_TO_LAST_INDEX]
-logtoxml LOGFILE XMLFILE
-installprovider PROVIDERBINARY
-sppath [PROTECTED_PROCESS_LOG_PATH]
-cppath
-logtofile [enable | disable]
A parancssor szintaxisa egy vagy több réteget fogad el, és alkalmazza őket egy vagy több célra, a rétegek opcionális tulajdonság-megjelölőivel.
appverif -enable LAYER ... -for TARGET ... [-with [LAYER].PROPERTY=[VALUE] …]
appverif -disable LAYER ... -for TARGET ...
appverif -query LAYER ... -for TARGET ...
appverif –configure STOP ... -for TARGET ... [-with STOPPROPERTY=[VALUE] …]
ahol:
A LAYER egy ellenőrző réteg szabványos neve. Ha egy új hitelesítő szolgáltató van telepítve, ez egy új ellenőrzőréteg-nevet tesz elérhetővé a parancssorban. Ilyenek például a halom, a fogópontok vagy a zárolások.
A LAYER beállítást *értékre állíthatja, így megadhatja, hogy a parancs az összes rétegre érvényes legyen.
A TARGET egy bináris név (például notepad.exe). Ez egy statikus beállítás, amely megmarad a beállításjegyzékben, és az alkalmazás indításakor figyelembe lesz véve. Az appverif –Disable parancs esetében a TARGET beállítást * értékre állíthatja, hogy az összes cél le legyen tiltva.
A TULAJDONSÁG a parancssorban említett LAYER tulajdonságnév. A Fogópontok rétegben például vannak nyomkövetések tulajdonságként.
Az ÉRTÉK a tulajdonság értéke. Az érték típusa a tulajdonsághoz társított típustól függ, és a rendszer kikényszeríti. A támogatott típusok jelenleg a következők: logikai (igaz/hamis), egész szám (decimális/oktális/hexa C jelölésben), sztring és többsztring (\0’ between strings and being terminated by \0\0'). Ha az ÉRTÉK nincs megadva, az azt jelenti, hogy a felhasználó törölni szeretné ezt a tulajdonságot, és vissza szeretné állítani a viselkedést a tulajdonság alapértelmezett értékére.
A STOP a konfigurálni kívánt hitelesítő leállítási probléma száma (decimális vagy hexa C jelölésben). A stop kódoknak egyedinek kell lenniük (két réteg nem használhatja ugyanazt a stop kódot, ezért maga az eszköz határozza meg, hogy melyik réteghez tartozik a stop)
A STOPPROPERTY egy tulajdonságnév, amely elfogadható a hitelesítő leállásokhoz. Ha az érték nincs megadva, akkor feltételezzük, hogy a tulajdonságot törölni kell. A leállások engedélyezett tulajdonságai a következők (további részletekért lásd a Hitelesítő leállások konfigurálását alább):
- Hibajelentés
- Súlyosság
- Íz
A tulajdonságokat igény szerint az a réteg minősítheti, amelyhez tartoznak. Erre azonban nincs szükség, ha a parancssor csak egy réteget engedélyez. Ha például két X és Y nevű réteget szeretne engedélyezni a cél test.exe X.DebugLevel és Y.DebugLevel tulajdonsággal, a parancs a következő:
appverif –enable X Y –for test.exe –with X.DebugLevel=1 Y.DebugLevel=2
Ha azonban az X réteg engedélyezve van, akkor egy nem minősített tulajdonságnév használható:
appverif –enable X –for test.exe –with DebugLevel=1
A tulajdonság neve és értéke közötti elválasztó karakter lehet = (egyenlőségjel) vagy : (kettőspont).
Egyéb parancsok
appverif –query providers
appverif –delete logs –for TARGET ...
appverif –delete settings –for TARGET ...
Törölje a teljes TARGET-t a beállításjegyzékből.
appverif –stamp log –for Target –with Stamp=”LOG_STAMP”[Log= RELATIVE_TO_LAST_INDEX]
Ez a parancs LOG_STAMP fogja lebélyegzni a naplót. Ez a bélyeg akkor hasznos, ha a naplónak csak egy szakaszát azonosítja relevánsnak a napló XML-formátumban való megtekintésekor.
appverif –export log –for TARGET –with To=XML_FILE[Symbols=SYMBOL_PATH][Stamp=LOG_STAMP][StampTo=LOG_STAMP][Log=RELATIVE_TO_LAST_INDEX]
A fenti parancs egy bináris naplót exportál egy XML-fájlba. Az opcionális Stamp tulajdonság segítségével azonosíthatja, hogy a napló mely részét kell XML-be exportálni. Ha nincs megadva, a rendszer a teljes naplót konvertálja. A Napló tulajdonság lehetséges értéke negatív egész szám, és azt jelzi, hogy melyik naplófájlt kell konvertálni az utolsótól kezdve (feltételezve, hogy a tulajdonság nincs jelen). Például egy sorban háromszor kell elindítania notepad.exe. Az első létrehozott napló eléréséhez adja meg a Log=-2 értéket a parancssorban.
Parancssori parancsikonok
A következő billentyűparancsok találhatók:
appverif /verify TARGET [/faults [PROBABILITY [TIMEOUT [DLL …]]]]
ahol:
A TARGET jelentése megegyezik a fent leírt jelentéssel.
A VALÓSZÍNŰSÉG az injektált hibák valószínűsége. A 0,.10000000 tartományban lévő értéknek kell lennie. Ha nincs megadva, az alapértelmezett érték 5%.
Az IDŐTÚLLÉPÉS az időintervallum ezredmásodpercben a folyamat indításakor, ha a hibainjektálás nem történik meg. Ez azért történik, hogy a folyamat megfelelően induljon el a hibák előtt. Ha nincs megadva, az érték 500 msecs.
A DLL annak a modulnak a neve, amely betöltődik a folyamatban. Ez általában egy dinamikus kódtár neve (.dllkiterjesztés), de lehet ActiveX (.ocx kiterjesztés) vagy más betölthető modul.
Példák:
appverif /verify notepad.exe /faults 100000 1000 msvcrt.dll
Engedélyezze a hibainjektálást notepad.exe (amikor elindítja). A hibáknak 10%valószínűséggel kell történnie , és csak 1000 msec-nek kell történnie a folyamat elindítása után, és csak a msvcrt.dll- ból indított műveletek esetén .
A hibainjektálás részleteinek engedélyezése
A /faults parancssor használata lehetővé teszi a hibainjektálást csak OLE_ALLOC és HEAP_ALLOC. A parancssor használatával azonban konfigurálhatja, hogy milyen típusú hibainjektálást szeretne bekapcsolni. Ha például hibát szeretne beszúrni egy beállításjegyzékbe vagy fájl API-ba 2%, használja a parancssort:
appverif -enable lowres -for hello.exe -with registry=20000 file=20000
Egy másik példa:
appverif -query lowres -for hello.exe
Settings for hello.exe:
Test [lowres] enabled.
Include = *
Exclude =
TimeOut = 2000 (0x7D0)
WAIT = 0 (0x0)
HEAP_ALLOC = 20000 (0x4E20)
VIRTUAL_ALLOC = 0 (0x0)
REGISTRY = 20000 (0x4E20)
FILE = 20000 (0x4E20)
EVENT = 0 (0x0)
MAP_VIEW = 0 (0x0)
OLE_ALLOC = 20000 (0x4E20)
STACKS = false
Hitelesítő leállások konfigurálása
A parancssor (vagy a felhasználói felület) használatával konfigurálhatja a hitelesítő leállások. Az alábbiakban példákat láthat a kihasználandó lehetőségekre:
Appverif -configure STOP ... -for TARGET ... -with PROPERTY=VALUE ...
A STOP az olyan leállítási kód, mint például a 0x200 0x201
A TARGET az alkalmazás neve, például foo.exe
A TULAJDONSÁG lehet az egyik "ErrorReport", "Súlyosság" és "Íz"
Az ErrorReport esetében az ÉRTÉK a következő értékek kombinációja lehet.
0x00000001 azt jelenti, hogy a leállítás aktív. (Ha ez a bit nulla, az azt jelenti, hogy a leállítás le van tiltva)
0x00000020 azt jelenti, hogy a stop törésponttal hibakeresővé válik.
0x00000040 azt jelenti, hogy egy Ellenőrző kivétel létrehozásával leállítja a hibakeresőbe való betörést.
0x00000080 azt jelenti, hogy a leállítás a naplófájlban lesz naplózva.
0x00000100 azt jelenti, hogy a leállításhoz tartozó verem nyomkövetése a naplófájlban lesz naplózva.
A súlyosság esetében az ÉRTÉK az alábbiak egyike lehet.
0x00000003 Informatív megálló.
0x0000000F figyelmeztetés.
0x0000003F hiba.
Az Ízek esetében az Érték a következő értékek kombinációja lehet.
0x00000002 Nem folyamatos leállást.
0x00000010 Ez a leállítás csak egyszer jelenik meg. A rendszer a következő időpontban figyelmen kívül hagyja a tesztfuttatáson belül.
Tiltsa le például 0x2700, 0x2701 foo.exe
Appverif –configure 0x2700 0x2701 –for foo.exe –with ErrorReport=0
Állítsa be a stop kódot 0x2700 hibakeresőbe való betörésként (alapértelmezés szerint ki van kapcsolva), mentse a naplót veremkövetés nélkül, és ne legyen folyamatos
Appverif –configure 0x2700 –for foo.exe –with ErrorReport=0xA1 Flavor=0x2
Hitelesítő leállítási beállításai – Speciális beállítások
Az Application Verifier speciális beállításokkal (például inaktiválás) rendelkezik, amelyeket a hitelesítő leállításanként módosíthat.
Access Verifier stop options – A Hitelesítő leállítási beállításai módosulnak egy párbeszédpanelen, amely felsorolja az elérhető beállításokat. A hitelesítő leállítási beállításainak elérése:
- Válassza ki a teszt nevét a Tesztek panelen.
- A Szerkesztés menüben válassza a Verifier leállítási beállításai lehetőséget, vagy kattintson a jobb gombbal a tesztre, és válassza a Hitelesítő leállítási beállításai lehetőséget.
Ellenőrző leállítási beállításai
A leállítási kódra kattintva módosíthatja a következő elemeket a hitelesítő leállítása listában (vegye figyelembe, hogy a leállítás leírása a kattintáskor megjelenik).
Az inaktív jelölőnégyzet bejelölésével inaktiválja a hitelesítő leállítási kód futtatását.
A súlyosság határozza meg, hogyan kell megjelölni a hitelesítő leállását:
- Hagyd figyelmen kívül
- Információ
- Figyelmeztetés
- Hiba
A hibajelentés meghatározza, hogyan szeretné jelenteni/naplózni az adott hitelesítő leállását:
Log to File (Log to File) – egy jelölőnégyzet, amely ha be van jelölve, a kijelölt fájlba fog bejelentkezni.
Naplóverem nyomkövetése – egy jelölőnégyzet, amely ha be van jelölve, naplózza a verem nyomkövetéseit, ha elérhetők.
Nincs törés – a hibakeresőben nem lehet megszakítani a hibát.
Kivétel – lehetőség törés és töréspont nélkül
Töréspont – lehetőség törés vagy kivétel nélkül.
A vegyes két lehetőséget kínál
Egyszeri leállítás – a bejelölt jelölőnégyzet csak egyszer fog leállni az alkalmazás tesztelése során.
Nem Continuable – egy jelölőnégyzet, amely ha be van jelölve, nem teszi lehetővé a folytatást vizsgálat nélkül.
Lásd még:
Application Verifier – Áttekintés
Application Verifier – Szolgáltatások
Application Verifier – Az Application Verifier tesztelése
Application Verifier – Kódok és definíciók leállítása
Application Verifier – Az alkalmazás-ellenőrző hibakeresése leáll