Condividi tramite


Connessione all'avvio

Dopo che un programma è stato avviato, la sessione di debug è pronta per associare il motore (DE) di debug del programma autonoma.

decisioni di progettazione

Poiché la comunicazione risulta più semplice all'interno di uno spazio degli indirizzi condiviso, è necessario decidere se è opportuno semplificare la comunicazione tra la sessione di debug e il DE, o tra il DE e il programma. Scegliere tra i seguenti:

  • Se è opportuno semplificare la comunicazione tra la sessione di debug e il DE, la sessione di debug viene creato il DE e chiede al DE per connettere il programma. Ciò consente alla sessione di debug e il DE in uno spazio degli indirizzi e l'ambiente di runtime e pianifica raccolta in un altro.

  • Se è opportuno semplificare la comunicazione tra il DE e il programma, nell'ambiente di runtime viene creato il DE. Ciò permette a SDM in uno spazio degli indirizzi e il DE, ambiente di runtime e pianifica raccolta in un altro. Si tratta di una tipica di un DE distribuito con un interprete per eseguire i linguaggi basati su script.

    Nota

    Come si connette di DE al programma è implementazione-dipendenti.La comunicazione tra DE e il programma è anche implementazione-dipendente.

Implementazione

A livello di codice, quando l'amministratore (SDM) di debug della sessione in primo luogo IDebugProgram2 viene rilasciato l'oggetto che rappresenta il programma venga avviata, chiama IDebugProgram2:: Connessione il metodo, passando IDebugEventCallback2 un oggetto, che successivamente viene utilizzato per passare gli eventi di debug di nuovo a SDM. Successivamente, il metodo IDebugProgram2::Attach chiama il metodo IDebugProgramNodeAttach2:: OnAttach. per ulteriori informazioni su come lo SDM riceve l'interfaccia di IDebugProgram2 , vedere Comunicazione delle porte.

Se il DE necessario eseguire nello stesso spazio degli indirizzi del programma sottoposto a debug, in genere perché il DE fa parte di un interprete che esegue uno script, il metodo di IDebugProgramNodeAttach2::OnAttach restituisce S_FALSE, indicando che ha eseguito il processo di connessione.

Se, invece, il DE viene eseguito nello spazio degli indirizzi di SDM, il metodo di IDebugProgramNodeAttach2::OnAttach restituisce S_OK o IDebugProgramNodeAttach2 l'interfaccia non è implementata qualsiasi IDebugProgramNode2 oggetto associato al programma sottoposto a debug. In questo caso, IDebugEngine2:: Connessione il metodo viene infine viene chiamato per completare l'operazione di connessione.

Nel secondo caso, è necessario chiamare IDebugProgram2:: GetProgramId il metodo sull'oggetto di IDebugProgram2 passato al metodo di IDebugEngine2::Attach , archivia GUID nell'oggetto locale del programma e restituisce il GUID quando il metodo di IDebugProgram2::GetProgramId seguito viene chiamato il metodo su questo oggetto. GUID viene utilizzato per identificare il programma in modo univoco tra i vari componenti di debug.

Si noti che nel caso del metodo di IDebugProgramNodeAttach2::OnAttach che restituisce S_FALSE, GUID da utilizzare per il programma viene passato al metodo ed è il metodo di IDebugProgramNodeAttach2::OnAttach che imposta GUID sull'oggetto locale del programma.

Il DE è ora associato al programma e pronto per inviare tutti gli eventi di avvio.

Vedere anche

Riferimenti

IDebugEventCallback2

IDebugProgram2

IDebugProgram2:: Connessione

IDebugProgram2:: GetProgramId

IDebugProgramNode2

IDebugProgramNodeAttach2

IDebugProgramNodeAttach2:: OnAttach

IDebugEngine2:: Connessione

Concetti

Connettendosi direttamente a un programma

Comunicazione delle porte

Attività di debug