Gestione debug sessione

Gestione debug sessione (SDM) gestisce qualsiasi numero di motori di debug (DE) che eseguono il debug di un numero qualsiasi di programmi in più processi in un numero qualsiasi di computer. Oltre a essere un multiplexer del motore di debug, SDM fornisce una visualizzazione unificata della sessione di debug all'IDE.

Operazione di gestione debug sessione

Gestione debug sessione (SDM) gestisce la de. In un computer possono essere in esecuzione più motori di debug contemporaneamente. Per eseguire il multiplex delle DE, il SDM esegue il wrapping di una serie di interfacce dalle DES ed espone tali interfacce all'IDE come singola interfaccia.

Per migliorare le prestazioni, alcune interfacce non vengono multiplex. Vengono invece usate direttamente dal DE e le chiamate a queste interfacce non passano attraverso il SDM. Ad esempio, le interfacce usate con memoria, codice e contesti di documento non vengono multiplexing, perché fanno riferimento a un'istruzione, memoria o documento specifico in un programma specifico sottoposto a debug da una de specifica. Nessun altro DE deve essere coinvolto in tale livello di comunicazione.

Questo non è vero per tutti i contesti. Le chiamate all'interfaccia del contesto di valutazione delle espressioni passano attraverso SDM. Durante la valutazione dell'espressione, SDM esegue il wrapping dell'interfaccia IDebugExpression2 che fornisce all'IDE perché quando tale espressione viene valutata, può comportare più DES che eseguono il debug di programmi nello stesso processo che potrebbe essere in esecuzione nello stesso thread.

Il modello SDM funge in genere da meccanismo di delega, ma può fungere da meccanismo di trasmissione. Ad esempio, durante la valutazione dell'espressione, SDM funge da meccanismo di trasmissione per notificare a tutte le DES che possono eseguire codice in un thread specificato. Analogamente, quando SDM riceve un evento di arresto, trasmette ai programmi che devono interrompere l'esecuzione. Quando viene chiamato un passaggio, il SDM trasmette ai programmi che possono continuare a essere in esecuzione. Anche i punti di interruzione vengono trasmessi a ogni DE.

SDM non tiene traccia del programma, del thread o dello stack frame corrente. Il processo, il programma e le informazioni sul thread vengono inviate a SDM insieme a eventi di debug specifici.

Vedi anche