Partager via


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

ICorDebugManagedCallback::Break, méthode

Notifie le débogueur lorsqu'une instruction Break figurant dans le flux du code est exécutée.

ICorDebugManagedCallback::Breakpoint, méthode

Notifie le débogueur lorsqu'un point d'arrêt est rencontré.

ICorDebugManagedCallback::BreakpointSetError, méthode

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.

ICorDebugManagedCallback::ControlCTrap, méthode

Notifie le débogueur que CTRL+C est intercepté dans le processus en cours de débogage.

ICorDebugManagedCallback::CreateAppDomain, méthode

Notifie le débogueur qu'un domaine d'application a été créé.

ICorDebugManagedCallback::CreateProcess, méthode

Notifie le débogueur lorsqu'un processus a été joint ou démarré pour la première fois.

ICorDebugManagedCallback::CreateThread, méthode

Notifie le débogueur qu'un thread a commencé à exécuter du code managé.

ICorDebugManagedCallback::DebuggerError, méthode

Notifie le débogueur qu'une erreur s'est produite lors d'une tentative de gestion d'un événement dans le CLR.

ICorDebugManagedCallback::EditAndContinueRemap, méthode

Désapprouvé. Notifie le débogueur qu'un événement de remappage a été envoyé à l'IDE.

ICorDebugManagedCallback::EvalComplete, méthode

Notifie le débogueur qu'une évaluation a été effectuée.

ICorDebugManagedCallback::EvalException, méthode

Notifie le débogueur qu'une évaluation s'est terminée avec une exception non gérée.

ICorDebugManagedCallback::Exception, méthode

Notifie le débogueur qu'une exception a été levée à partir du code managé.

ICorDebugManagedCallback::ExitAppDomain, méthode

Notifie le débogueur qu'un domaine d'application s'est arrêté.

ICorDebugManagedCallback::ExitProcess, méthode

Notifie le débogueur qu'un processus s'est arrêté.

ICorDebugManagedCallback::ExitThread, méthode

Notifie le débogueur qu'un thread qui exécutait du code managé s'est arrêté.

ICorDebugManagedCallback::LoadAssembly, méthode

Notifie le débogueur qu'un assembly du CLR a été chargé.

ICorDebugManagedCallback::LoadClass, méthode

Notifie le débogueur qu'une classe a été chargée.

ICorDebugManagedCallback::LoadModule, méthode

Notifie le débogueur qu'un module du CLR a été chargé.

ICorDebugManagedCallback::LogMessage, méthode

Notifie le débogueur qu'un thread managé du CLR a appelé une méthode dans la classe EventLog pour enregistrer un événement.

ICorDebugManagedCallback::LogSwitch, méthode

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.

ICorDebugManagedCallback::NameChange, méthode

Notifie le débogueur que le nom d'un domaine d'application ou d'un thread a changé.

ICorDebugManagedCallback::StepComplete, méthode

Notifie le débogueur qu'une étape a été effectuée.

ICorDebugManagedCallback::UnloadAssembly, méthode

Notifie le débogueur qu'un assembly du CLR a été déchargé.

ICorDebugManagedCallback::UnloadClass, méthode

Notifie le débogueur qu'une classe est en cours de déchargement.

ICorDebugManagedCallback::UnloadModule, méthode

Notifie le débogueur qu'un module du CLR (DLL) a été déchargé.

ICorDebugManagedCallback::UpdateModuleSymbols, méthode

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

Voir aussi

Référence

ICorDebug

ICorDebugManagedCallback2

Autres ressources

Interfaces de débogage