Freigeben über


ICorDebugManagedCallback-Schnittstelle

Aktualisiert: November 2007

Stellt Methoden zum Verarbeiten von Debuggerrückrufen zur Verfügung.

interface ICorDebugManagedCallback : IUnknown {
    HRESULT _stdcall Break(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* thread);
    HRESULT _stdcall Breakpoint(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] ICorDebugBreakpoint* pBreakpoint);
    HRESULT _stdcall BreakpointSetError(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] ICorDebugBreakpoint* pBreakpoint, 
                    [in] unsigned long dwError);
    HRESULT _stdcall ControlCTrap([in] ICorDebugProcess* pProcess);
    HRESULT _stdcall CreateAppDomain(
                    [in] ICorDebugProcess* pProcess, 
                    [in] ICorDebugAppDomain* pAppDomain);
    HRESULT _stdcall CreateProcess([in] ICorDebugProcess* pProcess);
    HRESULT _stdcall CreateThread(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* thread);
    HRESULT _stdcall DebuggerError(
                    [in] ICorDebugProcess* pProcess, 
                    [in] HRESULT errorHR, 
                    [in] unsigned long errorCode);
    HRESULT _stdcall EditAndContinueRemap(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] ICorDebugFunction* pFunction, 
                    [in] long fAccurate);
    HRESULT _stdcall EvalComplete(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] ICorDebugEval* pEval);
    HRESULT _stdcall EvalException(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] ICorDebugEval* pEval);
    HRESULT _stdcall Exception(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] long unhandled);
    HRESULT _stdcall ExitAppDomain(
                    [in] ICorDebugProcess* pProcess, 
                    [in] ICorDebugAppDomain* pAppDomain);
    HRESULT _stdcall ExitProcess([in] ICorDebugProcess* pProcess);
    HRESULT _stdcall ExitThread(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* thread);
    HRESULT _stdcall LoadAssembly(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugAssembly* pAssembly);
    HRESULT _stdcall LoadClass(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugClass* c);
    HRESULT _stdcall LoadModule(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugModule* pModule);
    HRESULT _stdcall LogMessage(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] long lLevel, 
                    [in] unsigned short* pLogSwitchName, 
                    [in] unsigned short* pMessage);
    HRESULT _stdcall LogSwitch(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] long lLevel, 
                    [in] unsigned long ulReason, 
                    [in] unsigned short* pLogSwitchName, 
                    [in] unsigned short* pParentName);
    HRESULT _stdcall NameChange(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread);
    HRESULT _stdcall StepComplete(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugThread* pThread, 
                    [in] ICorDebugStepper* pStepper, 
                    [in] CorDebugStepReason reason);
    HRESULT _stdcall UnloadAssembly(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugAssembly* pAssembly);
    HRESULT _stdcall UnloadClass(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugClass* c);
    HRESULT _stdcall UnloadModule(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugModule* pModule);
    HRESULT _stdcall UpdateModuleSymbols(
                    [in] ICorDebugAppDomain* pAppDomain, 
                    [in] ICorDebugModule* pModule, 
                    [in] IStream* pSymbolStream);
};

Methoden

Methode

Beschreibung

ICorDebugManagedCallback::Break-Methode

Benachrichtigt den Debugger, wenn eine Break-Anweisung im Codestream ausgeführt wird.

ICorDebugManagedCallback::Breakpoint-Methode

Benachrichtigt den Debugger, wenn ein Haltepunkt erreicht wird.

ICorDebugManagedCallback::BreakpointSetError-Methode

Benachrichtigt den Debugger, dass die Common Language Runtime (CLR) nicht in der Lage war, einen Haltepunkt korrekt zu binden, der vor der JIT-Kompilierung (Just-In-Time) einer Funktion festgelegt wurde.

ICorDebugManagedCallback::ControlCTrap-Methode

Benachrichtigt den Debugger, dass ein STRG+C im Prozess aufgefangen wird, der gedebuggt wird.

ICorDebugManagedCallback::CreateAppDomain-Methode

Benachrichtigt den Debugger, dass eine Anwendungsdomäne erstellt wurde.

ICorDebugManagedCallback::CreateProcess-Methode

Benachrichtigt den Debugger, wenn ein Prozess angehängt oder zum ersten Mal gestartet wurde.

ICorDebugManagedCallback::CreateThread-Methode

Benachrichtigt den Debugger, dass ein Thread mit der Ausführung von verwaltetem Code begonnen hat.

ICorDebugManagedCallback::DebuggerError-Methode

Benachrichtigt den Debugger, dass beim Versuch, ein Ereignis der CLR zu behandeln, ein Fehler aufgetreten ist.

ICorDebugManagedCallback::EditAndContinueRemap-Methode

Veraltet. Benachrichtigt den Debugger, dass ein Neuzuordnungsereignis an die IDE gesendet wurde.

ICorDebugManagedCallback::EvalComplete-Methode

Benachrichtigt den Debugger, dass eine Evaluierung abgeschlossen wurde.

ICorDebugManagedCallback::EvalException-Methode

Benachrichtigt den Debugger, dass eine Evaluierung mit einer nicht behandelten Ausnahme beendet wurde.

ICorDebugManagedCallback::Exception-Methode

Benachrichtigt den Debugger, dass eine Ausnahme von verwaltetem Code ausgelöst wurde.

ICorDebugManagedCallback::ExitAppDomain-Methode

Benachrichtigt den Debugger, dass eine Anwendungsdomäne beendet wurde.

ICorDebugManagedCallback::ExitProcess-Methode

Benachrichtigt den Debugger, dass ein Prozess beendet wurde.

ICorDebugManagedCallback::ExitThread-Methode

Benachrichtigt den Debugger, dass ein Thread, der verwalteten Code ausführte, beendet wurde.

ICorDebugManagedCallback::LoadAssembly-Methode

Benachrichtigt den Debugger, dass eine CLR-Assembly erfolgreich geladen wurde.

ICorDebugManagedCallback::LoadClass-Methode

Benachrichtigt den Debugger, dass eine Klasse geladen wurde.

ICorDebugManagedCallback::LoadModule-Methode

Benachrichtigt den Debugger, dass ein CLR-Modul erfolgreich geladen wurde.

ICorDebugManagedCallback::LogMessage-Methode

Benachrichtigt den Debugger, dass ein von der CLR verwalteter Thread eine Methode in der EventLog-Klasse aufgerufen hat, um ein Ereignis zu protokollieren.

ICorDebugManagedCallback::LogSwitch-Methode

Benachrichtigt den Debugger, dass ein von der CLR verwalteter Thread eine Methode in der Switch-Klasse aufgerufen hat, um einen Schalter für Debuggen/Ablaufverfolgung zu erstellen, zu ändern oder zu löschen.

ICorDebugManagedCallback::NameChange-Methode

Benachrichtigt den Debugger, dass sich der Name einer Anwendungsdomäne oder eines Threads geändert hat.

ICorDebugManagedCallback::StepComplete-Methode

Benachrichtigt den Debugger, dass ein Schritt abgeschlossen worden ist.

ICorDebugManagedCallback::UnloadAssembly-Methode

Benachrichtigt den Debugger, dass eine CLR-Assembly entladen wurde.

ICorDebugManagedCallback::UnloadClass-Methode

Benachrichtigt den Debugger, dass eine Klasse entladen wird.

ICorDebugManagedCallback::UnloadModule-Methode

Benachrichtigt den Debugger, dass ein CLR-Modul (DLL) entladen wurde.

ICorDebugManagedCallback::UpdateModuleSymbols-Methode

Benachrichtigt den Debugger, dass sich die Symbole für ein CLR-Modul geändert haben.

Hinweise

Alle Rückrufe sind serialisiert, werden in demselben Thread und mit dem Prozess im synchronisierten Zustand aufgerufen.

Jede Rückrufimplementierung muss ICorDebugController::Continue aufrufen, um die Ausführung fortzusetzen. Wenn ICorDebugController::Continue nicht vor der Rückgabe des Rückrufs aufgerufen wird, bleibt der Prozess angehalten. Es treten keine weiteren Ereignisrückrufe auf, bis ICorDebugController::Continue aufgerufen wird.

Ein Debugger muss ICorDebugManagedCallback2 implementieren, wenn er Anwendungen für .NET Framework, Version 2.0, debuggt. Eine Instanz von ICorDebugManagedCallback oder ICorDebugManagedCallback2 wird als Rückrufobjekt an ICorDebug::SetManagedHandler übergeben.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: CorDebug.idl

Bibliothek: CorGuids.lib

.NET Framework-Versionen: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0

Siehe auch

Referenz

ICorDebug

ICorDebugManagedCallback2

Weitere Ressourcen

Debugschnittstellen