ICorDebugManagedCallback, interface
Mise à jour : novembre 2007
Fournit des méthodes pour traiter les rappels de débogueur.
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);
};
Méthodes
Méthode |
Description |
---|---|
Notifie le débogueur lorsqu'une instruction Break figurant dans le flux du code est exécutée. |
|
Notifie le débogueur lorsqu'un point d'arrêt est rencontré. |
|
Notifie le débogueur que le Common Language Runtime (CLR) n'a pas pu lier correctement un point d'arrêt qui était défini avant la compilation JIT d'une fonction. |
|
Notifie le débogueur que CTRL+C est intercepté dans le processus en cours de débogage. |
|
Notifie le débogueur qu'un domaine d'application a été créé. |
|
Notifie le débogueur lorsqu'un processus a été joint ou démarré pour la première fois. |
|
Notifie le débogueur qu'un thread a commencé à exécuter du code managé. |
|
Notifie le débogueur qu'une erreur s'est produite lors d'une tentative de gestion d'un événement dans le CLR. |
|
Désapprouvé. Notifie le débogueur qu'un événement de remappage a été envoyé à l'IDE. |
|
Notifie le débogueur qu'une évaluation a été effectuée. |
|
Notifie le débogueur qu'une évaluation s'est terminée avec une exception non gérée. |
|
Notifie le débogueur qu'une exception a été levée à partir du code managé. |
|
Notifie le débogueur qu'un domaine d'application s'est arrêté. |
|
Notifie le débogueur qu'un processus s'est arrêté. |
|
Notifie le débogueur qu'un thread qui exécutait du code managé s'est arrêté. |
|
Notifie le débogueur qu'un assembly du CLR a été chargé. |
|
Notifie le débogueur qu'une classe a été chargée. |
|
Notifie le débogueur qu'un module du CLR a été chargé. |
|
Notifie le débogueur qu'un thread managé du CLR a appelé une méthode dans la classe EventLog pour enregistrer un événement. |
|
Notifie le débogueur qu'un thread managé du CLR a appelé une méthode dans la classe Switch pour créer, modifier ou supprimer un commutateur de débogage/traçage. |
|
Notifie le débogueur que le nom d'un domaine d'application ou d'un thread a changé. |
|
Notifie le débogueur qu'une étape a été effectuée. |
|
Notifie le débogueur qu'un assembly du CLR a été déchargé. |
|
Notifie le débogueur qu'une classe est en cours de déchargement. |
|
Notifie le débogueur qu'un module du CLR (DLL) a été déchargé. |
|
Notifie le débogueur que les symboles d'un module du CLR ont changé. |
Notes
Tous les rappels sont sérialisés, appelés dans le même thread et appelés avec le processus dans l'état synchronisé.
Chaque implémentation de rappel doit appeler ICorDebugController::Continue pour reprendre l'exécution. Si ICorDebugController::Continue n'est pas appelé avant le retour du rappel, le processus restera arrêté et aucun autre rappel d'événement ne se produira jusqu'à ce que ICorDebugController::Continue soit appelé.
Un débogueur doit implémenter ICorDebugManagedCallback2 s'il débogue des applications du .NET Framework version 2.0. Une instance d'ICorDebugManagedCallback ou d'ICorDebugManagedCallback2 est passée en tant qu'objet de rappel à ICorDebug::SetManagedHandler.
Configuration requise
Plateformes : consultez Configuration requise du .NET Framework.
En-tête : CorDebug.idl
Bibliothèque : CorGuids.lib
Versions du .NET Framework : 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0