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");
}

Voir aussi