Aracılığıyla paylaş


IDebugProgramPublisher2

Bu arabirim, bir hata ayıklama altyapısının (DE) veya özel bağlantı noktası sağlayıcılarının programları hata ayıklamaya kaydetmesine olanak tanır.

Sözdizimi

IDebugProgramPublisher2 : IUnknown

Uygulayıcılar için Notlar

Visual Studio, birden çok işlemde hata ayıklama için görünür hale getirmek amacıyla hata ayıklanan programları kaydetmek için bu arabirimi uygular.

Arayanlar İçin Notlar

Bu arabirimi elde etmek için COM CoCreateInstance işlevini ile CLSID_ProgramPublisher çağırın (örn. Örn. DE veya özel bağlantı noktası sağlayıcısı, hata ayıklanan programları temsil eden program düğümlerini kaydetmek için bu arabirimi kullanır.

Vtable sırasına göre yöntemler

Bu arabirim aşağıdaki yöntemleri uygular:

Metot Açıklama
PublishProgramNode Bir program düğümünü DE'ler ve oturum hata ayıklama yöneticisi (SDM) için kullanılabilir hale getirir.
UnpublishProgramNode Artık kullanılamaması için program düğümünü kaldırır.
PublishProgram Bir programı DE'ler ve SDM için kullanılabilir hale getirir.
UnpublishProgram Artık kullanılamaması için bir programı kaldırır.
SetDebuggerPresent Hata ayıklayıcının mevcut olduğunu belirten bir bayrak ayarlar.

Açıklamalar

Bu arabirim, programları ve program düğümlerini DE'ler ve oturum hata ayıklama yöneticisi (SDM) tarafından kullanılmak üzere kullanılabilir hale getirir (yani, "yayımlar"). Yayımlanan programlara ve program düğümlerine erişmek için IDebugProgramProvider2 arabirimini kullanın. Visual Studio'nın bir programın hata ayıklandığını anlayabilmesinin tek yolu budur.

Gereksinimler

Üst bilgi: msdbg.h

Ad Alanı: Microsoft.VisualStudio.Debugger.Interop

Derleme: Microsoft.VisualStudio.Debugger.Interop.dll

Örnek

Bu örnek, program yayımcısının nasıl başlatılıp bir program düğümünü nasıl kaydedeceklerini gösterir. Bu, Program Düğümünü Yayımlama Öğreticisi'nden alınmıştır.

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

Ayrıca bkz.