Interfacce di base
Le interfacce seguenti sono le interfacce principali per l'estensione del debugger tramite Visual Studio SDK.
Discussione
Queste interfacce vengono usate principalmente per creare il motore di debug (DE). Sono organizzati qui per categorie:
-
Le entità che possono implementare le interfacce sono:
Motore di debug (DE)
Fornitore di porte (PS)
Analizzatore di espressioni (edizione Enterprise)
Visual Studio (VS)
Punti di interruzione
Queste interfacce sono correlate all'implementazione e al rilevamento dei punti di interruzione.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugBoundBreakpoint2 | DE | Rappresenta un punto di interruzione associato a una posizione di memoria. |
IDebugBreakpointBoundEvent2 | DE | Inviato da DE quando un punto di interruzione è associato a una posizione di memoria. |
IDebugBreakpointChecksumRequest2 | VS | Rappresenta un checksum del documento per una richiesta di punto di interruzione. |
IDebugBreakpointErrorEvent2 | DE | Inviato da DE quando un punto di interruzione non riesce a essere associato a una posizione di memoria. |
IDebugBreakpointEvent2 | DE | Inviato da DE quando viene raggiunto un punto di interruzione. |
IDebugBreakpointRequest2 | VS | Rappresenta una richiesta per un punto di interruzione; utilizzato per la creazione di un punto di interruzione in sospeso. |
IDebugBreakpointRequest3 | VS | Rappresenta una richiesta per un punto di interruzione; utilizzato per la creazione di un punto di interruzione in sospeso. |
IDebugBreakpointResolution2 | DE | Rappresenta le informazioni utilizzate per associare un punto di interruzione. |
IDebugBreakpointUnboundEvent2 | DE | Inviato da DE quando un punto di interruzione non è associato da una posizione di memoria. |
IDebugErrorBreakpoint2 | DE | Rappresenta un punto di interruzione non valido (restituito da IDebugBreakpointErrorEvent2 ). |
IDebugErrorBreakpointResolution2 | DE | Rappresenta le informazioni sulla risoluzione relative a un punto di interruzione non valido. |
IDebugFunctionPosition2 | DE | Rappresenta una posizione in una funzione in cui è impostato un punto di interruzione. |
IDebugPendingBreakpoint2 | DE | Rappresenta un punto di interruzione da associare; utilizzato per la creazione di un punto di interruzione associato. |
IEnumDebugBoundBreakpoints2 | DE | Rappresenta un'enumerazione su un set di punti di interruzione associati. |
IEnumDebugErrorBreakpoints2 | DE | Rappresenta un'enumerazione su un set di punti di interruzione che non possono essere associati a una posizione di memoria. |
Contesti
Queste interfacce rappresentano vari tipi di contesti all'interno del programma di cui è in corso il debug.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugCodeContext2 | DE | Rappresenta la posizione iniziale di un'istruzione di codice. |
IDebugCodeContext3 | DE | Estende l'interfaccia IDebugCodeContext2 per abilitare il recupero di interfacce del modulo e del processo. |
IDebugDocumentContext2 | VS, DE | Rappresenta una posizione in un documento. |
IDebugExpressionContext2 | DE | Rappresenta il contesto in cui valutare un'espressione. |
IDebugMemoryContext2 | DE | Rappresenta la posizione iniziale in memoria di una raccolta di byte. |
IDebugStackFrame2 | DE | Rappresenta un contesto stack frame in corrispondenza di un punto di interruzione o di un'eccezione. |
IDebugStackFrame3 | DE | Rappresenta un contesto stack frame in corrispondenza di un punto di interruzione o di un'eccezione. |
IEnumDebugCodeContexts2 | DE | Rappresenta un'enumerazione su un set di contesti di codice. |
Core Server
Queste interfacce rappresentano il computer in cui viene eseguito il debug di un programma. Questi vengono implementati da Visual Studio, ma possono essere chiamati dai motori di debug.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugCoreServer2 | VS | Fornisce l'accesso a porte e fornitori di porte, nonché informazioni sul computer. |
IDebugCoreServer3 | VS | Rappresenta un IDebugCoreServer2 che supporta il debug remoto. |
Motori di debug
Queste interfacce rappresentano i motori di debug e i relativi eventi associati.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugEngine2 | DE | Rappresenta un motore di debug personalizzato. |
IDebugEngine3 | DE | Rappresenta un motore di debug personalizzato che supporta il caricamento di simboli, JustMyCode ed eccezioni. |
IDebugEngineCreateEvent2 | DE | Inviato da ogni nuova istanza di DE per indicare che è pronto per gestire le attività di debug. |
IDebugEngineLaunch2 | DE | Rappresenta un motore di debug personalizzato che supporta l'avvio di programmi. |
IDebugProgramEngines2 | DE, PS | Rappresenta un nodo del programma che gestisce più motori di debug. |
IDebugQueryEngine2 | DE | Consente a SDM di ottenere un'interfaccia al motore di debug da un thread, un programma o uno stack frame. |
Documenti
Queste interfacce rappresentano documenti (file di origine) e i relativi elementi associati.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugActivateDocumentEvent2 | DE | Inviato da DE per richiedere l'apertura di un documento. |
IDebugDisassemblyStream2 | DE | Rappresenta un flusso di istruzioni disassemblate da un documento. |
IDebugDocument2 | VS, DE | Rappresenta un documento fornito da DE, specificando un nome e un ID classe (CLSID). |
IDebugDocumentChecksum2 | DE, edizione Enterprise | Rappresenta un checksum per un documento di debug e consente di passare il checksum tra i componenti. |
IDebugDocumentContext2 | VS, DE | Rappresenta un contesto di documento, una posizione all'interno di un documento corrispondente a una particolare istruzione e contesto di codice. |
IDebugDocumentPosition2 | VS, DE | Rappresenta una posizione generale all'interno di un documento. |
IDebugDocumentPositionOffset2 | VS | Rappresenta una posizione in un file di origine come offset di caratteri. |
IDebugDocumentText2 | VS, DE | Rappresenta un documento di testo fornito da DE (derivato da IDebugDocument2), fornendo il testo effettivo. |
IDebugDocumentTextEvents2 | DE | Inviato da DE per specificare le modifiche apportate a un file di origine in memoria. |
Eventi
Queste interfacce rappresentano tutti gli eventi inviati tra DE e il gestore di debug della sessione .
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugActivateDocumentEvent2 | DE | Inviato da DE per richiedere l'apertura di un documento. |
IDebugBeforeSymbolSearchEvent2 | DE | Il motore di debug (DE) invia questa interfaccia al gestore di debug della sessione (SDM) per impostare il messaggio della barra di stato durante il caricamento dei simboli. |
IDebugBreakEvent2 | DE | Inviato dal DE quando è stata completata un'interruzione nel programma. |
IDebugBreakpointBoundEvent2 | DE | Inviato da DE quando è associato un punto di interruzione. |
IDebugBreakpointErrorEvent2 | DE | Inviato da DE quando un punto di interruzione non riesce a essere associato. |
IDebugBreakpointEvent2 | DE | Inviato da DE quando viene raggiunto un punto di interruzione. |
IDebugBreakpointUnboundEvent2 | DE | Inviato da DE quando un punto di interruzione non è associato. |
IDebugCanStopEvent2 | DE | Inviato dal de per determinare se deve arrestarsi in una determinata posizione. |
IDebugDocumentTextEvents2 | DE | Inviato da DE per specificare le modifiche apportate a un file di origine in memoria. |
IDebugEngineCreateEvent2 | DE | Inviato da ogni nuova istanza di DE per indicare che è pronto per gestire le attività di debug. |
IDebugEntryPointEvent2 | DE | Inviato da DE per indicare che il programma sottoposto a debug è pronto per eseguire la prima istruzione. |
IDebugErrorEvent2 | DE | Interfaccia usata da altre interfacce evento, che potrebbero restituire un errore, per fornire messaggi di errore leggibili. |
IDebugEvent2 | DE, PS | Interfaccia di base da cui derivano tutte le altre interfacce evento. |
IDebugEventCallback2 | VS | Rappresenta un'interfaccia implementata da SDM a cui vengono inviati gli eventi (espressi come oggetti che implementano un'interfaccia evento specifica). |
IDebugExceptionEvent2 | DE | Inviato da DE quando si è verificata un'eccezione nel programma di cui è in corso il debug. |
IDebugExpressionEvaluationCompleteEvent2 | DE | Inviato da DE al termine di una valutazione asincrona dell'espressione. |
IDebugFindSymbolEvent2 | OBSOLETO. NON U edizione Standard. | |
IDebugInterceptExceptionCompleteEvent2 | DE | Inviato dal de durante l'elaborazione per un'eccezione intercettata è stata completata. |
IDebugLoadCompleteEvent2 | DE | Inviato da DE quando un programma ha completato il caricamento. |
IDebugMessageEvent2 | DE | Inviato da DE per fare in modo che l'IDE visualizzi un messaggio informativo all'utente. |
IDebugModuleLoadEvent2 | DE | Inviato da DE quando un modulo viene caricato o scaricato. |
IDebugNoSymbolsEvent2 | DE | Segnala all'interfaccia utente del debugger di Visual Studio di avvisare l'utente che non è stato possibile individuare i simboli per l'eseguibile avviato. |
IDebugOutputStringEvent2 | DE | Inviato da DE per fare in modo che l'IDE visualizzi una stringa arbitraria. |
IDebugPortEvents2 | VS, DE | Inviato da una porta per comunicare gli eventi di porta a qualsiasi listener. |
IDebugProcessCreateEvent2 | DE, PS | Inviato dalla porta o DE quando è stato creato un processo. |
IDebugProcessDestroyEvent2 | DE, PS | Inviato dalla porta o DE quando un processo è stato distrutto. |
IDebugProgramCreateEvent2 | DE, PS | Inviato dalla porta o DE quando è stato creato un programma. |
IDebugProgramDestroyEvent2 | DE, PS | Inviato dal DE o dalla porta quando un programma è stato distrutto. |
IDebugProgramDestroyEventFlags2 | DE | Consente a un motore di debug di eseguire l'override del comportamento predefinito dell'interfaccia utente di Visual Studio quando si termina una sessione di debug. |
IDebugProgramNameChangedEvent2 | DE | Inviato dal motore di debug (DE) al gestore di debug della sessione (SDM) quando cambia il nome di un programma. |
IDebugPropertyCreateEvent2 | DE | Inviato da DE quando è stata creata una nuova proprietà (rappresentata dall'interfaccia IDebugProperty2 ). |
IDebugPropertyDestroyEvent2 | DE | Inviato dal DE quando una proprietà è stata distrutta. |
IDebugReturnValueEvent2 | DE | Inviato da DE quando si esce da o su una funzione in modo che il valore restituito possa essere visualizzato correttamente. |
IDebugSettingsCallback2 | VS | Consente ai motori di debug di leggere le impostazioni delle metriche in remoto. |
IDebugStepCompleteEvent2 | DE | Inviato da DE quando è stato completato un passaggio, oltre o fuori da un'istruzione. |
IDebugSymbolSearchEvent2 | DE | Inviato da DE per indicare l'esito positivo o negativo del caricamento dei simboli per un modulo. |
IDebugThreadCreateEvent2 | DE | Inviato da DE quando è stato creato un thread. |
IDebugThreadDestroyEvent2 | DE | Inviato dal DE quando un thread è stato distrutto. |
IDebugThreadNameChangedEvent2 | DE | Inviato da DE quando un thread ha modificato il nome. |
Espressioni
Queste interfacce rappresentano le espressioni da valutare in un contesto specifico.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugExpression2 | DE | Rappresenta un'espressione da valutare. Ottenuto dall'interfaccia IDebugExpressionContext2 . |
IDebugExpressionContext2 | DE | Rappresenta un contesto in cui viene valutata un'espressione. Ottenuto dall'interfaccia IDebugStackFrame2 . |
IDebugExpressionEvaluationCompleteEvent2 | DE | Inviato da DE al termine di una valutazione asincrona dell'espressione. |
Memoria
Queste interfacce rappresentano sequenze di byte in memoria.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugMemoryBytes2 | DE | Rappresenta una sequenza di byte in memoria in cui è possibile leggere o scrivere. |
IDebugMemoryContext2 | DE | Rappresenta una posizione in memoria di una sequenza di byte. |
Moduli
Queste interfacce rappresentano un modulo, che corrisponde a un file eseguibile o DLL.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugModule2 | DE | Rappresenta un singolo eseguibile o DLL. |
IDebugModule3 | DE | Rappresenta un IDebugModule2 che supporta i simboli. |
IDebugModuleLoadEvent2 | DE | Inviato da DE quando un modulo viene caricato o scaricato. |
IDebugSourceServerModule | DE | Rappresenta le informazioni sul server di origine contenute in un file PDB. |
IEnumDebugModules2 | DE | Rappresenta un'enumerazione su un set di moduli noti da un IDebugProgram2. |
Porti
Queste interfacce rappresentano porte e fornitori di porte.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugDefaultPort2 | VS, PS | Rappresenta la porta predefinita nel computer locale. |
IDebugFirewallConfigurationCallback2 | VS | Abilita un motore di debug che usa DCOM per chiedere all'interfaccia utente di Visual Studio di assicurarsi che il firewall non blocchi il debug remoto. |
IDebugPort2 | VS, PS | Rappresenta una porta. |
IDebugPortEvents2 | PS | Inviato da una porta per comunicare gli eventi di porta a qualsiasi listener. |
IDebugPortEx2 | PS | Rappresenta una porta in grado di avviare e terminare i processi. |
IDebugPortNotify2 | PS | Utilizzato per registrare e annullare la registrazione dei programmi con una porta; consente alla porta di tenere traccia dei programmi attualmente in fase di debug. |
IDebugPortPicker | PS | Rappresenta un'interfaccia utente personalizzata per la selezione della porta. |
IDebugPortRequest2 | VS | Rappresenta una richiesta per una porta da cui verrà creata o individuata una nuova porta. |
IDebugPortSupplier2 | PS | Rappresenta un fornitore di porte. |
IDebugPortSupplier3 | PS | Rappresenta un fornitore di porte che possono salvare in modo permanente (salvare su disco) informazioni sulle porte create. |
IDebugPortSupplierDescription2 | PS | Consente all'interfaccia utente di Visual Studio di visualizzare il testo all'interno della sezione Informazioni di trasporto della finestra di dialogo Connetti a processo . |
IDebugWindowsComputerPort2 | VS | Consente di eseguire query per ottenere informazioni sul computer di destinazione. |
IEnumDebugPorts2 | VS, PS | Rappresenta un'enumerazione su un set di porte. |
IEnumDebugPortSuppliers2 | VS | Rappresenta un'enumerazione su un set di fornitori di porte. |
Processi
Queste interfacce rappresentano processi, un singolo eseguibile che contiene uno o più programmi.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugProcess2 | PS, DE | Rappresenta un processo in esecuzione in un computer. |
IDebugProcess3 | PS, DE | Rappresenta un processo che supporta attivamente il debug (utilizzato per sostituire i metodi Step, Continue ed Execute nell'interfaccia IDebugProgram2 ). |
IDebugProcessCreateEvent2 | DE, PS | Inviato dalla porta o DE quando è stato creato un processo. |
IDebugProcessDestroyEvent2 | DE, PS | Inviato dalla porta o DE quando un processo è stato distrutto. |
IDebugProcessEx2 | PS | Rappresenta un processo che deve tenere traccia della sessione collegata. |
IEnumDebugProcesses2 | PS | Rappresenta un'enumerazione di un set di processi su una porta. |
Programmi
Queste interfacce rappresentano programmi, unità logiche di esecuzione che non corrispondono necessariamente a un eseguibile fisico o a un modulo.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugEngineProgram2 | DE | Rappresenta un IDebugProgram2 che deve funzionare insieme ad altri programmi di cui viene eseguito il debug contemporaneamente. |
IDebugProgram2 | DE, PS | Rappresenta un'unità logica di esecuzione. |
IDebugProgramCreateEvent2 | DE, PS | Inviato dalla porta o DE quando è stato creato un programma. |
IDebugProgramDestroyEvent2 | DE, PS | Inviato dal DE o dalla porta quando un programma è stato distrutto. |
IDebugProgramEngines2 | DE, PS | Rappresenta un oggetto IDebugProgramNode2 che può essere gestito da più motori di debug. |
IDebugProgramEx2 | PS | Rappresenta un IDebugProgram2 che deve essere in grado di tenere traccia della sessione collegata. |
IDebugProgramHost2 | DE, PS | Rappresenta un IDebugProgram2 che può restituire informazioni sul processo in cui è in esecuzione. |
IDebugProgramNode2 | DE, PS | Rappresenta un programma che può essere sottoposto a debug. |
IDebugProgramNodeAttach2 | DE, PS | Consente a un nodo del programma di ricevere una notifica di un tentativo di connessione al programma associato. |
IDebugProgramProvider2 | DE | Consente al SDM di eseguire query su un DE sui programmi controllati da tale de. |
IDebugProgramPublisher2 | VS | Usato dalle DE per registrare i programmi con SDM per mostrare che vengono sottoposti a debug. |
IDebugProviderProgramNode2 | DE, PS | Rappresenta un oggetto IDebugProgramNode2 in grado di effettuare il marshalling di interfacce attraverso i limiti del thread o del processo. |
IEnumDebugPrograms2 | DE, PS | Rappresenta un'enumerazione di un set di programmi. |
Proprietà
Queste interfacce rappresentano proprietà, un valore associato a un contesto specifico, in genere il risultato di una valutazione dell'espressione.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugCustomViewer | EE | Rappresenta un oggetto IDebugProperty2 che può visualizzarne il valore in modo personalizzato. |
IDebugProperty2 | DE | Rappresenta un valore di uno stack frame, un documento o il risultato di una valutazione di un'espressione. |
IDebugProperty3 | DE | Rappresenta un oggetto IDebugProperty2 che supporta stringhe arbitrariamente lunghe. |
IDebugPropertyCreateEvent2 | DE | Inviato da DE quando è stata creata una nuova proprietà (rappresentata dall'interfaccia IDebugProperty2 ). |
IDebugPropertyDestroyEvent2 | DE | Inviato dal DE quando una proprietà è stata distrutta. |
IDebugReference2 | DE | Rappresenta un riferimento a una proprietà che può esistere all'esterno di un particolare stack frame. |
IEnumDebugPropertyInfo2 | DE | Rappresenta un'enumerazione su un set di strutture DEBUG_PROPERTY_INFO che descrivono variabili, registri, parametri ed espressioni. |
IEnumDebugReferenceInfo2 | DE | Rappresenta un'enumerazione su un set di strutture DEBUG_REFERENCE_INFO . |
Frame dello stack
Queste interfacce rappresentano uno stack frame, un contesto in cui si è verificato un punto di interruzione o un'eccezione.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugStackFrame2 | DE | Rappresenta un contesto in cui si è verificato un punto di interruzione o un'eccezione. |
IDebugStackFrame3 | DE | Rappresenta un IDebugStackFrame2 che può gestire le eccezioni intercettate. |
IEnumCodePaths2 | DE | Rappresenta un'enumerazione sul set di strutture CODE_PATH che specificano la sequenza di chiamata di funzione utilizzata per arrivare a un particolare stack frame. |
IEnumDebugFrameInfo2 | DE | Rappresenta un'enumerazione su un set di strutture FRAMEINFO , che descrivono gli stack frame. |
Threads
Queste interfacce rappresentano thread e i relativi eventi associati.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IDebugThread2 | DE | Rappresenta un thread di esecuzione. |
IDebugThreadCreateEvent2 | DE | Inviato da DE quando è stato creato un thread. |
IDebugThreadDestroyEvent2 | DE | Inviato dal DE quando un thread è stato distrutto. |
IDebugThreadNameChangedEvent2 | DE | Inviato da DE quando un thread ha modificato il nome. |
IEnumDebugThreads2 | DE | Rappresenta un'enumerazione su un set di thread. |
Visualizzatori di tipi
Queste interfacce forniscono il supporto per i visualizzatori di tipi. Queste interfacce vengono in genere implementate da un analizzatore di espressioni.
Interfaccia | Implementato da | Descrizione |
---|---|---|
IEEDataStorage | EE | Rappresenta una matrice di byte da presentare a un visualizzatore di tipi. |
IPropertyProxyEESide | EE | Fornisce metodi per ottenere l'accesso ai dati da passare a un visualizzatore di tipi. |
IPropertyProxyProvider | EE | Rappresenta una proprietà che fornisce l'accesso alle implementazioni IPropertyProxy edizione Enterprise Side. |