Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a témakör a JavaScript-bővítményekben használt natív hibakereső objektumok tervezési és tesztelési szempontjait ismerteti.
A natív hibakereső objektumok a hibakereső környezet különböző szerkezeteit és viselkedését jelölik. Az objektumok átadhatók (vagy beszerezhetők) JavaScript-bővítményekbe a hibakereső állapotának módosításához.
A Hibakereső objektum JavaScript-bővítményeiről további információt a JavaScript-bővítmények natív hibakereső objektumai című témakörben talál.
A JavaScript használatával kapcsolatos általános információkért tekintse meg a JavaScript Hibakereső szkriptkészítés című témakört.
Hibakereső adatmodell tervezési szempontjai
Tervezési alapelvek
Vegye figyelembe az alábbi alapelveket, hogy a hibakereső bővítmények felderíthető, lekérdezhető és szkriptelhető információkat jeleníthessenek meg.
- Az információ közel van ahhoz, ahol szükség van rá. Egy beállításkulcs információinak például egy beállításkulcs-leírót tartalmazó helyi változó részeként kell megjelennie.
- Az információ strukturált. A beállításkulcsra vonatkozó információk például külön mezőkben jelennek meg, például kulcstípus, kulcs ACL, kulcsnév és érték. Ez azt jelenti, hogy az egyes mezők szöveg elemzése nélkül is elérhetők.
- Az információk konzisztensek. A beállításkulcs-leírókra vonatkozó információk a fájlleírókkal kapcsolatos információkhoz hasonlóan jelennek meg.
Kerülje ezeket a megközelítéseket, amelyek nem támogatják ezeket az alapelveket.
- Ne strukturálja az elemeket egyetlen lapos "Konyhai mosogatóba". A rendszerezett hierarchia lehetővé teszi a felhasználók számára, hogy anélkül keressenek információt, hogy előzetesen nem ismerik a keresett információkat, és támogatják a felderíthetőséget.
- Ne konvertáljon klasszikus dbgeng-bővítményt úgy, hogy egyszerűen áthelyezi a modellbe, miközben továbbra is nyers szöveg képernyőit adja ki. Ez nem írható össze más kiterjesztésekkel, és nem kérdezhető le LINQ-kifejezésekkel. Ehelyett külön, lekérdezhető mezőkre bontsa az adatokat.
Elnevezési irányelvek
- A mezők nagybetűsítésének PascalCase formátumban kell lennie. Kivételnek tekinthetők a más burkolatokban széles körben ismert nevek, például a jQuery.
- Ne használjon olyan speciális karaktereket, amelyeket általában nem használnak C++ azonosítóban. Kerülje például a "Teljes hossz" (szóközt tartalmazó) vagy a "[size]" (szögletes zárójeleket tartalmazó) nevek használatát. Ez a konvenció lehetővé teszi a szkriptnyelvek egyszerűbb használatát, ha ezek a karakterek nem engedélyezettek az azonosítók részeként, és lehetővé teszi a parancsablakból való könnyebb használatot is.
Szervezeti és hierarchia-irányelvek
- Ne bővítse ki a hibakereső névterének legfelső szintjét. Ehelyett ki kell terjesztenie egy meglévő csomópontot a hibakeresőben, hogy az információk ott jelenjenek meg, ahol a legrelevánsabb.
- Ne duplikálja a fogalmakat. Ha olyan adatmodell-bővítményt hoz létre, amely további információkat sorol fel a hibakeresőben már létező fogalomról, ahelyett, hogy új információkkal próbálná lecserélni a meglévő információkat. Más szóval egy modul részleteit megjelenítő bővítménynek ki kell terjesztenie a meglévő modulobjektumot a modulok új listájának létrehozása helyett.
- Az ingyenes lebegő segédprogram parancsainak a Debugger.Utility névtér részét kell képezniük. Az alnévteret is megfelelően kell megadni (pl. Debugger.Utility.Collections.FromListEntry)
Visszamenőleges kompatibilitás és megszakító változások
A közzétett szkriptek nem szakítják meg a kompatibilitást más, attól függő szkriptekkel. Ha például egy függvény közzétéve van a modellben, akkor lehetőség szerint ugyanazon a helyen és ugyanazon paraméterekkel kell maradnia.
Külső erőforrások használata nélkül
- A bővítmények nem hozhatnak ki külső folyamatokat. A külső folyamatok zavarhatják a hibakereső viselkedését, és helytelenül viselkednek különböző távoli hibakereső forgatókönyvekben (például dbgsrv remotes, ntsd remotes és "ntsd -d remotes")
- A bővítmények nem jeleníthetnek meg semmilyen felhasználói felületet. A felhasználói felület elemeinek megjelenítése helytelenül fog viselkedni a távoli hibakeresési forgatókönyvekben, és megszakíthatja a konzol hibakeresési forgatókönyveit.
- A bővítmények nem módosíthatják a hibakereső motort vagy a hibakereső felhasználói felületét nem dokumentált módszerekkel. Ez kompatibilitási problémákat okoz, és helytelenül fog viselkedni a különböző felhasználói felülettel rendelkező hibakereső ügyfeleken.
- A bővítményeknek csak a dokumentált hibakereső API-kon keresztül férhetnek hozzá a céladatokhoz. A céladatok win32 API-kkal való elérése sok távoli forgatókönyv esetében sikertelen lesz, és néhány helyi hibakeresési forgatókönyv is biztonsági határokon átnyúló.
A Dbgeng-specifikus funkciók nem használhatók
A bővítményként használni kívánt szkriptek nem támaszkodhatnak a dbgeng-specifikus funkciókra, amikor csak lehetséges (például a "klasszikus" hibakereső bővítmények végrehajtása). A szkripteknek használhatóknak kell lenniük bármely olyan hibakeresőn, amely az adatmodellt üzemelteti.
Hibakereső bővítmények tesztelése
A bővítmények várhatóan számos forgatókönyvben működnek. Bár egyes bővítmények egy adott forgatókönyvre (például egy kernel hibakeresési forgatókönyvre) vonatkozhatnak, a legtöbb bővítménynek minden forgatókönyvben működnie kell, vagy metaadatokkal kell rendelkeznie a támogatott forgatókönyvekre vonatkozóan.
Kernel mód
- Élő kernel hibakeresése
- Kernel memóriaállapot-kiszedés hibakeresése
Felhasználói mód
- Élő felhasználói mód hibakeresése
- Felhasználói módú memóriakép hibakeresése
Emellett vegye figyelembe ezeket a hibakeresők használati forgatókönyveit
- Többfolyamatos hibakeresés
- Több munkamenetes hibakeresés (pl. dömp + élő hibakeresési folyamat egyetlen munkameneten belül)
Távoli hibakereső használata
Tesztelje a megfelelő működést a távoli hibakereső használati forgatókönyveivel.
- dbgsrv remotes
- ntsd-távvezérlők
- ntsd -d távoli vezérlők
További információ: Hibakeresés CDB és NTSD használatával , valamint folyamatkiszolgáló aktiválása.
Regressziós tesztelés
Vizsgálja meg a tesztautomatizálás használatát, amely képes ellenőrizni a bővítmények működését a hibakereső új verzióinak megjelenésekor.
Lásd még
JavaScript-bővítmények natív hibakereső objektumai
Natív hibakereső objektumok JavaScript-bővítményekben – Hibakereső objektum részletei.