Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nel riquadro Stato vengono visualizzate espressioni booleane per i valori delle variabili nel driver, nel modello del sistema operativo e nella regola. SDV usa queste espressioni per costruire un'astrazione del driver, del modello del sistema operativo e della regola e le usa nella verifica.
La schermata seguente mostra un esempio pannello State nel Visualizzatore di difetti.
Il riquadro Stato è un componente del Visualizzatore difetti. Quando un elemento di codice viene evidenziato nel riquadro albero di tracciae la riga di codice sorgente corrispondente è evidenziata nel riquadro codice sorgente, il riquadro Stato visualizza le espressioni booleane (dal set di espressioni che SDV sta monitorando per il driver) che risultano essere TRUE prima dell'esecuzione della riga di codice.
Monitoraggio delle espressioni booleane
Durante la verifica di ogni regola per il driver, SDV tiene traccia di un set di espressioni booleane. Le espressioni booleane visualizzate nel riquadro stato sono le espressioni in tale set che restituiscono VERO. Se l'elemento nel riquadro albero di traccia modifica il valore di qualsiasi espressione, il contenuto del riquadro Stato cambia per visualizzare il nuovo set di espressioni che restituiscono TRUE.
Interpretazione delle espressioni nel riquadro stato
La maggior parte delle espressioni visualizzate nel riquadro stato sono correlate alle variabili evidenti nel codice della regola. È possibile usare il codice sorgente per la regola (nel file .slic RuleNamenel riquadro codice sorgente Source Code) per interpretare le espressioni.
Tuttavia, alcune espressioni vengono visualizzate nel riquadro Stato senza dettagli sulla relativa rappresentazione interna che può essere utile per interpretarle. Ad esempio:
x!=x
Per SDV, questa espressione rappresenta una condizione in cui il valore della variabile x a questo punto della traccia non è uguale al valore della stessa variabile in un punto diverso della traccia. Usare il codice sorgente del driver, il codice della regola (*.slic) e gli elementi nel riquadro albero di traccia per aiutarti a interpretare le espressioni.
Tab di Selezione nel Pannello Stato
Le espressioni booleane nel riquadro Stato vengono visualizzate nelle schede. Ogni scheda rappresenta un passaggio della traccia tramite tutto il codice sorgente usato nella verifica. Il numero nella scheda del passaggio rappresenta l'ordine di tale passaggio nella traccia.
In genere, poiché ogni riga di codice sorgente rappresenta un solo passaggio della traccia, nel riquadro stato sarà presente una sola scheda passaggio. Tuttavia, il codice complesso può generare molti passaggi.
Ad esempio, la schermata seguente mostra il riquadro Stato che mostra una riga di codice che include un puntatore a funzione. In questo caso, ogni tab passo rappresenta un passaggio nella risoluzione del puntatore, la chiamata della funzione indicata e il relativo risultato. Il numero di schede dei passaggi indica quanti passaggi sono necessari affinché SDV risolva il puntatore alla funzione.
Per visualizzare ogni scheda del passaggio nel riquadro stato in ordine, selezionare la riga di codice associata nel riquadro codice sorgente. Fare quindi clic sulla riga di codice nel riquadro codice sorgente ripetutamente. Ogni volta che si fa clic sulla riga di codice selezionata, SDV visualizza la scheda passaggio successivo finché non hai completato il ciclo di tutte le schede dei passaggi. La freccia gialla curva indica il passaggio selezionato.
È anche possibile fare clic su qualsiasi scheda nel riquadro Stato per visualizzarne il contenuto.
commento
SDV tiene spesso traccia delle espressioni nel riquadro Stato che non vengono visualizzate nella regola e non sembrano essere direttamente correlate alla regola. Queste espressioni derivano da un'euristica sofisticata usata da SDV nei suoi tentativi di correlare valori diversi e violazioni di regole diverse. In alcune situazioni, SDV non è in grado di valutare correttamente l'espressione. In questi casi, SDV fornisce un messaggio che indica che lo stato corrente è sconosciuto e visualizza l'espressione del passaggio con l'ultimo stato noto. Per una spiegazione, vedere l'esempio di codice seguente:
Unknown state. Last known state from step 120.
sdv irql current ==2
sdv irql current!=1
sdv irql current!=0