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 Állapot panel logikai kifejezéseket jelenít meg az illesztőprogram változóinak értékeihez, az operációsrendszer-modellhez és a szabályhoz. Az SDV ezeket a kifejezéseket használja az illesztőprogram, az operációsrendszer-modell és a szabály absztrakciójának létrehozásához, és az ellenőrzés során használja őket.
Az alábbi képernyőképen egy Állapot panel látható a Hibanézőben.
Az Állapot panel a Hibanapló egyik összetevője. Ha egy kódelem ki van emelve a Nyomkövetési fa panelen, és a forráskód megfelelő sora ki van emelve a Forráskód panelen, az Állapot panel megjeleníti azokat a logikai kifejezéseket (az SDV által az illesztőprogram számára nyomon követett kifejezések készletéből), amelyek a kódsor végrehajtása előtt TRUE értékre értékelnek.
Logikai kifejezések nyomon követése
Az illesztőprogram minden szabályának ellenőrzése során az SDV logikai kifejezések készletét követi nyomon. 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.
Kifejezések értelmezése az Állapot panelen
Az Állapot panelen megjelenő kifejezések többsége a szabálykódban nyilvánvaló változókhoz kapcsolódik. A szabály forráskódjával (a Forráskód panel RuleName.slic fájljában) segíthet a kifejezések értelmezésében.
Egyes kifejezések azonban úgy jelennek meg az Állapot panelen, hogy nem jelennek meg a belső ábrázolásuk részletei, amelyek segíthetnek értelmezni őket. Például
x!=x
Az SDV-hez ez a kifejezés egy olyan feltételt jelöl, amelyben az x változó értéke a nyomkövetés ezen pontján nem egyenlő ugyanannak a változónak az értékével a nyomkövetés egy másik pontján. A kifejezések értelmezéséhez használja az illesztőprogram forráskódját, a szabálykódot (*.slic) és a Nyomkövetési fa panel elemeit.
Lépésfülek az Állapot panelen
Az Állapot panel logikai kifejezései megjelennek a lapokon. Minden lap a nyomkövetés egy lépését jelöli az ellenőrzés során használt összes forráskódon keresztül. A lépés lapon lévő szám a lépés sorrendjét jelöli a nyomkövetésben.
Mivel a forráskód minden sora csak egy lépést jelöl a nyomkövetésben, az Állapot panelen csak egy lépéslap jelenik meg. Az összetett kód azonban számos lépést generálhat.
Az alábbi képernyőképen például egy függvénymutatót tartalmazó kódsor látható az Állapot panelen. Ebben az esetben minden lépésfül a mutató végrehajtásának egy lépését, a mutatott függvény meghívását és annak eredményét jelenti. (A lépésfülek száma megmutatja, hogy az SDV hány lépéssel oldja fel a függvénymutatót.)
Ha az Állapot panel minden lépéslapját sorrendben szeretné megtekinteni, válassza ki a kapcsolódó kódsort a Forráskód panelen. Ezután kattintson többször a kódsorra a Forráskód panelen. Minden alkalommal, amikor a kijelölt kódsorra kattint, az SDV megjeleníti a következő lépés fülét, amíg végig nem lép az összes lépéslapon. A görbe sárga nyíl jelzi a kijelölt lépést.
Az Állapot panel bármelyik fülére kattintva megtekintheti annak tartalmát.
Megjegyzés
Az SDV gyakran nyomon követi az Állapot panel azon kifejezéseit, amelyek nem jelennek meg a szabályban, és nem kapcsolódnak közvetlenül a szabályhoz. Ezek a kifejezések kifinomult heurisztikai eredményekből erednek, amelyeket az SDV a különböző értékek és szabálysértések korrelálására tett kísérleteiben használ. Bizonyos helyzetekben az SDV nem tudja megfelelően kiértékelni a kifejezést. Ezekben az esetekben az SDV egy üzenetet jelenít meg, amely azt jelzi, hogy az aktuális állapot ismeretlen, és megjeleníti a lépésben szereplő kifejezést az utolsó ismert állapottal. A magyarázathoz lásd a következő kód példáját:
Unknown state. Last known state from step 120.
sdv irql current ==2
sdv irql current!=1
sdv irql current!=0