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 SDV-jelentés az ellenőrzési eredmények interaktív megjelenítése. Ez a szakasz bemutatja, hogyan használható az SDV-jelentés egy kódolási hiba megkeresésére az illesztőprogramban. A jelentésről, az ablakok funkcióiról és az ablakok elemeiről részletes információt a Static Driver Verifier report című témakörben talál.
A statikus illesztőprogram-ellenőrző hibamegjelenítőjének megnyitása
Ha az SDV bármilyen "hibát" (szabálysértést) jelentett az Eredmények panelen, megtekintheti a szabálysértésben érintett kódot a Statikus illesztőprogram-ellenőrző jelentés Hibamegjelenítő ablakában. A Hibamegjelenítő ablak a szabálysértés elérési útján jeleníti meg a kódot. Minden szabályhoz egy Hibamegjelenítő ablak tartozik (egyszerre csak egy Hibamegjelenítő ablakot tekinthet meg).
A Hibamegjelenítő ablak megnyitása hiba esetén:
- Válasszon ki egy szabályt a Hiba(ok) csomópont alatti listából.
Ez az eljárás csak hibák esetén működik. Az SDV nem hoz létre Hibamegjelenítő ablakot, ha az ellenőrzés eredményei nem hibák, például sikeres eredmények; időtúllépések; memóriagépek kimerülése; nem relevánsak; vagy bármely más nem hibás eredmény.
Az alábbi képernyőképen egy statikus illesztőprogram-ellenőrző jelentésoldal látható.
A szabály áttekintése
Mielőtt megpróbálná megtalálni a szabálysértést a kódban, ismerkedjen meg a sofőr által megszegett szabályokkal.
A Statikus illesztőprogram-ellenőrző szabályok szakasza tartalmaz egy témakört, amely ismerteti az egyes szabályokat, például a CancelSpinLockot.
A szabály kódjának megtekintéséhez a Statikus illesztőprogram-ellenőrző jelentés Forráskód paneljén kattintson a szabálykódot tartalmazó fülre( például CancelSpinLock.slic).
A CancelSpinLock szabály sérül, ha az illesztőprogram az IoAcquireCancelSpinLock és IoReleaseCancelSpinLock hívásokat helytelen sorrendben hajtja végre, vagy ha az illesztőprogram kilép a rutinból, mielőtt feloldja a spinlock zárat.
A hiba elérési útjának nyomon követése
Amikor megnyílik a Hibamegjelenítő ablak, a Nyomkövetési fa panel azon eleme lesz kiválasztva, amely a hiba elérési útjának első kritikus illesztőprogram-hívását jelöli. A Forráskód panelen a kapcsolódó forráskódsor kék színnel van kiemelve.
Az alábbi képernyőképen a Statikus illesztőprogram-ellenőrző hibamegjelenítő ablakának nyitónézete látható, amely szerint a Fail_Driver1 mintaillesztő megsértette a CancelSpinLock szabályt. Ebben a példában a CancelSpinLock szabály megsértésének elérési útjának első illesztőprogram-hívása az IoAcquireCancelSpinLock hívása az illesztőprogram DispatchSystemControl rutinjában.
A Forráskód panel használata
A Forráskód panel megjeleníti az ellenőrzés során használt forrásfájlokat. Ha kijelöl egy elemet a Nyomkövetési fa panelen, az elemhez társított forráskódfájl megjelenik a fájlverem tetején a szomszédos Forráskód panelen. Ha másik forrásfájlt szeretne látni, kattintson a forrásfájl fülére a Forráskód panelen.
Az alábbi képernyőképen a Forráskód panel látható. Ebben a Forráskód panelen a halványkék színnel kiemelt kódsorok azok, amelyek a Nyomkövetési fa panel kijelölt eleméhez vannak társítva.
A meghajtó kódban a hiba felé vezető úton végrehajtott sorok piros betűkkel jelennek meg. Ha csak a piros szöveg sorait, például a 116-os és a 118-as sort tekinti meg ebben a példában, néha láthatja a hibát, különösen egy egyszerű hibát, mint amit ebben a példában használt. Ebben az esetben az illesztő beszerzi a pörgetési zárat, majd a diszpécser rutinból való visszatéréskor nem oldja fel azt.
Lépj végig a nyomkövetésen
A nyomkövetés megkezdéséhez jelöljön ki egy elemet a Nyomkövetési fa panelen, majd nyomja le a LE nyílbillentyűt. Minden alkalommal, amikor lenyomja a LE nyílbillentyűt, a nyomkövetési fa panel következő eleme lesz kijelölve.
A Nyomkövetési fa panel elemeinek végiglépésekor tekintse meg a Forráskód panelt az illesztőprogram-kód elemeinek megtekintéséhez. A kód összecsukott szakaszának kibontásához nyomja meg a JOBBRA nyilat. A kód kibontott szakaszának összecsukásához nyomja le a BALRA nyílbillentyűt. A kurzor kihagyja a kód összes összecsukott szakaszát.
A Nyomkövetési fa panel elemeinek görgetése során a forráskódfájl, amelyben a kijelölt elem származik, a Forráskód panel fájlkészletének tetejére kerül, és a kapcsolódó kódsor ki van emelve.
Az alábbi képernyőképen a Statikus illesztőprogram-ellenőrző hibamegjelenítő látható a Nyomkövetési fa és a Forráskód panelekkel.
A Szabályfájl és az Állapot panel használata
Az Állapot panelen megtekintheti azoknak a logikai kifejezéseknek a készletét, amelyek az SDV által az ellenőrzés során nyomon követendő változók értékeit jelölik.
Az Állapot panelen megjelenő logikai kifejezések a készlet azon kifejezései, amelyek IGAZ értékre vannak kiértékelve. Ha a Nyomkövetési fa panelen lévő elem módosítja bármely kifejezés értékét, az Állapot panel tartalma megváltozik, és megjeleníti az igaz értékre kiértékelt új kifejezéskészletet.
Amikor végiglép a Nyomkövetési fa panelen, megfigyelheti, hogyan használja az SDV ezeknek a változóknak az értékeit a szabályfájlban (*.slic) használt kifejezések kiértékelésére.
A Statikus illesztőprogram-ellenőrző jelentés oldalának alábbi képernyőképe bemutatja, hogy az SDV-tesztek hogyan jelzik, hogy az illesztőprogram korábban spin-zárolást szerzett-e be. Az SDV-tesztek azt vizsgálják, hogy az illesztő korábban kapott-e spin-zárolást, vagyis hogy az s változó értéke 1, vagyis zárolva van-e. Ebben az esetben az s!=1 (feloldva) az Állapot panelen látható módon, így az SDV az s értékét 1 értékre állítja, jelezve, hogy a zárolás be van szerezve.
Az ABORT rutin megkeresése
Ha az illesztőprogram kódja megsért egy szabályt, a Nyomkövetési fa panel egy ABORT-rutint tartalmaz a hiba jelentéséhez.
Ha a hibakód elérési útja hosszú és összetett, gyakran hasznos lefelé görgetni a Nyomkövetési fa panelen, amíg meg nem találja az ABORT-rutint , majd a FEL NYÍLbillentyűvel megkeresheti azt a kódot, amely a hibajelentést azonnal aktiválta.
Például az alábbi képernyőképen látható módon az ABORT rutin a CancelSpinLock.slic fájl egy sorával van társítva, amely a hibát a zárolás beszerzésének ellenőrzése után jelenti (s==zárolva). A teszt egy alrutin része, amelyet a feladási rutin végén hajtanak végre. Ebből az információból arra következtethet, hogy az illesztőprogram nem tudta feloldani a spin-zárolást, mielőtt visszatér a küldési rutinból.
Zárja be a statikus illesztőprogram-ellenőrző hibamegjelenítőjét
Miután azonosította a hibát okozó kódhibát, bezárhatja az aktuális szabály Statikus illesztőprogram-ellenőrző hibamegjelenítő ablakát, majd megnyithatja a Hibanaplót egy másik szabályhoz.
Szabály Hibamegjelenítőjének bezárása:
- A Fájl menüben válassza a Kilépés lehetőséget.
A HibamegjelenítőBezárás gombjára (X) is kattinthat. A statikus illesztőprogram-ellenőrző jelentés Bezárás gombja (X) alatt található.
Az alábbi képernyőkép bemutatja, hogyan zárhatja be a Hibamegjelenítőt.