Megosztás:


A Statikus illesztőprogram-ellenőrző jelentés használata

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.

Piros kör ikon fehér X-sel, amely egy hibát jelö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ó.

Képernyőkép egy statikus illesztőprogram-ellenőrző jelentésoldaláról.

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.

Képernyőkép a Static Driver Verifier Defect Viewer ablak nyitónézetéről a CancelSpinLock szabály megsértése esetén.

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.

Képernyőkép a Forráskód panelről a Statikus illesztőprogram-ellenőrző hibamegjelenítőjében.

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.

Képernyőkép egy Statikus illesztőprogram-ellenőrző jelentésoldalról nyomkövetési fával és 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.

Képernyőkép egy statikus illesztőprogram-ellenőrző jelentésoldaláról, amelyen a korábban beszerzett pörgetési zárolás SDV-tesztjei láthatók.

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.

Képernyőkép a Static Driver Verifier jelentésoldalról, amelyen a CancelSpinLock.slic fájl egy sorához társított ABORT-rutin látható.

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.

Képernyőkép egy szabály hibanaplójának statikus illesztőprogram-ellenőrzőben való bezárásáról.