Condividi tramite


Oggetti client

Quasi tutte le interazioni con il motore del debugger sono tramite oggetti client, spesso definiti semplicemente client. Ogni client fornisce un'implementazione delle interfacce del motore di primo livello. Ogni interfaccia fornisce un set diverso di metodi, che possono essere usati per interagire con il motore e, tramite il motore, le destinazioni. Un'istanza del motore può avere molti client, ognuno con il proprio stato.

Client primari

Un client primario è un client che ha aggiunto la sessione di debug corrente. Inizialmente, quando viene creato un nuovo oggetto client, non è un client primario. Un client diventa un client primario quando viene usato per acquisire una destinazione (ad esempio, chiamando CreateProcess2) o è connesso alla sessione di debug usando Connessione Session. Il comando debugger .clients elenca solo i client primari.

Oggetti callback

Gli oggetti callback possono essere registrati con ogni client. Esistono tre tipi di oggetti callback:

  1. Input Callback Objects (o callback di input): il motore chiama callback di input per richiedere l'input. Ad esempio, un debugger con una finestra della console potrebbe registrare un callback di input per fornire al motore l'input dell'utente oppure un debugger potrebbe registrare un callback di input per fornire al motore l'input da un file.

  2. Output Callback Objects (o callback di output): il motore chiama i callback di output per visualizzare l'output. Ad esempio, un debugger con una finestra della console potrebbe registrare un callback di output per presentare l'output del debugger all'utente oppure un debugger potrebbe registrare un callback di output per inviare l'output a un file di log.

  3. Oggetti callback eventi (o callback eventi): il motore chiama callback di eventi ogni volta che si verifica un evento in una destinazione (o si verifica una modifica nello stato del motore). Ad esempio, una libreria di estensioni del debugger potrebbe registrare un callback di eventi per monitorare determinati eventi o eseguire azioni automatiche quando si verifica un determinato evento.

Debug remoto

Gli oggetti client facilitano la comunicazione con le istanze remote del motore host. La funzione Debug Connessione crea un oggetto client connesso a un'istanza del motore remoto. I metodi chiamati su questo client vengono eseguiti dal motore remoto e gli oggetti di callback registrati localmente con il client verranno chiamati quando il motore remoto effettua chiamate di callback.

Informazioni aggiuntive

Per informazioni dettagliate sulla creazione e l'uso di oggetti client, vedere Uso di oggetti callback. Per informazioni dettagliate sulla registrazione di oggetti callback, vedere Uso di oggetti callback.