Condividi tramite


Collegarsi direttamente a un programma

Gli utenti che vogliono eseguire il debug dei programmi in un processo già in esecuzione seguono questo processo:

  1. Nell'IDE aprire il menu Debug e selezionare il comando Connetti a processo.

    Viene visualizzata la finestra di dialogo Connetti a processo , che elenca tutti i motori di debug installati nel computer.

  2. Specificare le DE da usare per eseguire il debug del processo selezionato, scegliere un processo e fare clic sul pulsante Associa .

    Il pacchetto di debug avvia una sessione di debug e ne passa l'elenco. La sessione di debug passa a sua volta questo elenco, insieme a una funzione di callback, al processo selezionato e quindi chiede al processo di enumerare i programmi in esecuzione.

    A livello di codice, in risposta alla richiesta dell'utente, il pacchetto di debug crea un'istanza di Gestione debug sessione (SDM) e passa l'elenco di DES selezionati. Insieme all'elenco, il pacchetto di debug passa l'interfaccia SDM a IDebugEventCallback2 . Il pacchetto di debug passa l'elenco di DES al processo selezionato chiamando IDebugProcess2::Attach. Il SDM chiama quindi IDebugProcess2::EnumPrograms sulla porta per enumerare i programmi in esecuzione nel processo.

    Da questo punto in poi, ogni motore di debug è collegato a un programma esattamente come descritto in Collegamento dopo un avvio, con due eccezioni.

    Per un'efficienza, le DES implementate per condividere uno spazio indirizzi con SDM sono raggruppate in modo che ogni DE abbia un set di programmi a cui verrà collegato. In questo caso, IDebugProcess2 chiama IDebugEngine2::Attach e lo passa a una matrice di programmi a cui collegarsi.

    La seconda eccezione è che gli eventi di avvio inviati da un DE collegato a un programma che è già in esecuzione non in genere includono l'evento del punto di ingresso.