IDebugProgramPublisher2
Cette interface permet à un moteur de débogage (DE) ou à des fournisseurs de ports personnalisés d’inscrire des programmes pour le débogage.
Syntaxe
IDebugProgramPublisher2 : IUnknown
Remarques pour les implémenteurs
Visual Studio implémente cette interface pour inscrire les programmes en cours de débogage afin de les rendre visibles pour le débogage sur plusieurs processus.
Remarques pour les appelants
Appelez la CoCreateInstance
fonction COM pour CLSID_ProgramPublisher
obtenir cette interface (voir l’exemple). Un fournisseur de ports personnalisé ou DE utilise cette interface pour inscrire des nœuds de programme qui représentent les programmes en cours de débogage.
Méthodes dans l’ordre de la table virtuelle
Cette interface implémente les méthodes suivantes :
Méthode | Description |
---|---|
PublishProgramNode | Met un nœud de programme à la disposition des DE et du gestionnaire de débogage de session (SDM). |
UnpublishProgramNode | Supprime un nœud de programme afin qu’il ne soit plus disponible. |
PublishProgram | Met un programme à la disposition des DE et du SDM. |
UnpublishProgram | Supprime un programme afin qu’il ne soit plus disponible. |
SetDebuggerPresent | Définit un indicateur indiquant qu’un débogueur est présent. |
Notes
Cette interface rend les programmes et les nœuds de programme disponibles (c’est-à-dire les « publie ») à utiliser par les DEs et le gestionnaire de débogage de session (SDM). Pour accéder aux programmes publiés et aux nœuds de programme, utilisez l’interface IDebugProgramProvider2 . Il s’agit de la seule façon dont Visual Studio peut reconnaître qu’un programme est débogué.
Spécifications
En-tête : msdbg.h
Espace de noms : Microsoft.VisualStudio.Debugger.Interop
Assembly : Microsoft.VisualStudio.Debugger.Interop.dll
Exemple
Cet exemple montre comment instancier l’éditeur de programme et inscrire un nœud de programme. Cette opération est extraite du didacticiel, en publiant le nœud du programme.
// This is how m_srpProgramPublisher is defined in the class definition:
// CComPtr<IDebugProgramPublisher2> m_srpProgramPublisher.
void CProgram::Start(IDebugEngine2 * pEngine)
{
m_spEngine = pEngine;
HRESULT hr = m_srpProgramPublisher.CoCreateInstance(CLSID_ProgramPublisher);
if ( FAILED(hr) )
{
ATLTRACE("Failed to create the program publisher: 0x%x.", hr);
return;
}
// Register ourselves with the program publisher. Note that
// CProgram implements the IDebgProgramNode2 interface, hence
// the static cast on "this".
hr = m_srpProgramPublisher->PublishProgramNode(
static_cast<IDebugProgramNode2*>(this));
if ( FAILED(hr) )
{
ATLTRACE("Failed to publish the program node: 0x%x.", hr);
m_srpProgramPublisher.Release();
return;
}
ATLTRACE("Added program node.\n");
}