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.
Il gestore di debug della sessione (SDM) gestisce qualsiasi numero di motori di debug (DE) che eseguono il debug di un numero qualsiasi di programmi in più processi su un numero qualsiasi di macchine. Oltre a essere un multiplexer del motore di debug, SDM fornisce una visualizzazione unificata della sessione di debug all'IDE.
Operazione di gestione della sessione di debug
Il gestore di debug della sessione (SDM) gestisce il DE. In un computer possono essere in esecuzione più motori di debug contemporaneamente. Per multiplexare le DE, il SDM effettua il wrapping di un numero di interfacce dalle DE ed espone tali interfacce all'IDE come una 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 utilizzate con i contesti di memoria, codice e documenti non vengono multiplexate, perché si riferiscono a un'istruzione, memoria o documento specifico in un programma specifico sottoposto a debug da un DE specifico. 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 l'SDM riceve un evento di arresto, trasmette ai programmi l'indicazione 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.