analizzatore di espressioni
Gli analizzatori (EE) di espressioni che esaminano la sintassi di un linguaggio per analizzare e valutare variabili ed espressioni in fase di esecuzione, consentendo li da visualizzare dall'utente quando l'ide è in modalità di interruzione.
Utilizzando gli analizzatori di espressioni
Le espressioni vengono create IDebugExpressionContext2:: ParseText utilizzando il metodo, come segue:
il motore di debug (DE) implementa IDebugExpressionContext2 l'interfaccia.
Il pacchetto di debug ottiene un oggetto di IDebugExpressionContext2 IDebugStackFrame2 da un'interfaccia e chiama quindi il metodo di IDebugStackFrame2::ParseText per ottenere IDebugExpression2 un oggetto.
Il pacchetto di debug chiama IDebugExpression2:: EvaluateSync il metodo o IDebugExpression2:: EvaluateAsync il metodo per ottenere il valore dell'espressione. IDebugExpression2::EvaluateAsync viene chiamato dal comando/finestra di controllo immediato. Tutti gli altri componenti dell'interfaccia utente chiamano IDebugExpression2::EvaluateSync.
Il risultato della valutazione di un'espressione è IDebugProperty2 un oggetto, che contiene il nome, il tipo e il valore del risultato della valutazione di un'espressione.
Durante la valutazione di un'espressione, l'EE richiede le informazioni da parte del provider del simbolo. Il provider del simbolo vengono fornite informazioni sui simboli utilizzato per l'identificazione e la comprensione dell'espressione analizzata.
Quando la valutazione asincrona dell'espressione è completa, un evento asincrono viene inviato da DE tramite gestione (SDM) di debug della sessione per notificare all'IDE che la valutazione delle espressioni è completa. Quando la valutazione sincrona di espressione viene completata, il risultato della valutazione viene restituito dalla chiamata al metodo di IDebugExpression2::EvaluateSync .
note di implementazione
I motori di debug di Visual Studio previsto per comunicare con l'analizzatore di espressioni che utilizza le interfacce (CLR) di Common Language Runtime. Di conseguenza, un analizzatore di espressioni che funziona con i motori di debug di Visual Studio deve supportare il CLR (un elenco completo di tutte le interfacce di debug di CLR è disponibile in debugref.doc, che fa parte di Windows Software Development Kit (SDK)).