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 |
---|---|
Benachrichtigt den Debugger, wenn eine Break-Anweisung im Codestream ausgeführt wird. |
|
Benachrichtigt den Debugger, wenn ein Haltepunkt erreicht wird. |
|
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. |
|
Benachrichtigt den Debugger, dass ein STRG+C im Prozess aufgefangen wird, der gedebuggt wird. |
|
Benachrichtigt den Debugger, dass eine Anwendungsdomäne erstellt wurde. |
|
Benachrichtigt den Debugger, wenn ein Prozess angehängt oder zum ersten Mal gestartet wurde. |
|
Benachrichtigt den Debugger, dass ein Thread mit der Ausführung von verwaltetem Code begonnen hat. |
|
Benachrichtigt den Debugger, dass beim Versuch, ein Ereignis der CLR zu behandeln, ein Fehler aufgetreten ist. |
|
Veraltet. Benachrichtigt den Debugger, dass ein Neuzuordnungsereignis an die IDE gesendet wurde. |
|
Benachrichtigt den Debugger, dass eine Evaluierung abgeschlossen wurde. |
|
Benachrichtigt den Debugger, dass eine Evaluierung mit einer nicht behandelten Ausnahme beendet wurde. |
|
Benachrichtigt den Debugger, dass eine Ausnahme von verwaltetem Code ausgelöst wurde. |
|
Benachrichtigt den Debugger, dass eine Anwendungsdomäne beendet wurde. |
|
Benachrichtigt den Debugger, dass ein Prozess beendet wurde. |
|
Benachrichtigt den Debugger, dass ein Thread, der verwalteten Code ausführte, beendet wurde. |
|
Benachrichtigt den Debugger, dass eine CLR-Assembly erfolgreich geladen wurde. |
|
Benachrichtigt den Debugger, dass eine Klasse geladen wurde. |
|
Benachrichtigt den Debugger, dass ein CLR-Modul erfolgreich geladen wurde. |
|
Benachrichtigt den Debugger, dass ein von der CLR verwalteter Thread eine Methode in der EventLog-Klasse aufgerufen hat, um ein Ereignis zu protokollieren. |
|
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. |
|
Benachrichtigt den Debugger, dass sich der Name einer Anwendungsdomäne oder eines Threads geändert hat. |
|
Benachrichtigt den Debugger, dass ein Schritt abgeschlossen worden ist. |
|
Benachrichtigt den Debugger, dass eine CLR-Assembly entladen wurde. |
|
Benachrichtigt den Debugger, dass eine Klasse entladen wird. |
|
Benachrichtigt den Debugger, dass ein CLR-Modul (DLL) entladen wurde. |
|
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