Aracılığıyla paylaş


IDebugSymbolProvider

Bu arabirim, semboller ve türler sağlayan ve bunları alan olarak döndüren bir simge sağlayıcısını temsil eder.

Sözdizimi

IDebugSymbolProvider : IUnknown

Uygulayıcılar için Notlar

Bir sembol sağlayıcısı, bir ifade değerlendiricisine sembol ve tür bilgileri sağlamak için bu arabirimi uygulamalıdır.

Arayanlar İçin Notlar

Bu arabirim, COM'un CoCreateInstance işlevi kullanılarak (yönetilmeyen sembol sağlayıcıları için) veya uygun yönetilen kod derlemesini yükleyerek ve bu derlemede bulunan bilgilere göre sembol sağlayıcısının örneği kullanılarak elde edilir. Hata ayıklama altyapısı, ifade değerlendiricisi ile eşgüdümlü çalışmak için sembol sağlayıcısının örneğini oluşturur. Bu arabirimin örneğini oluşturmayla ilgili bir yaklaşım örneği için bkz.

Vtable Sırasına Göre Yöntemler

Aşağıdaki tabloda yönteminin yöntemleri gösterilmektedir IDebugSymbolProvider.

Metot Açıklama
Initialize Kullanımdan kaldırıldı. Kullanmayın.
Uninitialize Kullanımdan kaldırıldı. Kullanmayın.
GetContainerField Hata ayıklama adresini içeren alanı alır.
GetField Kullanımdan kaldırıldı. Kullanmayın.
GetAddressesFromPosition Bir belge konumunu hata ayıklama adresleri dizisine Haritalar.
GetAddressesFromContext Bir belge bağlamını hata ayıklama adresleri dizisine Haritalar.
GetContextFromAddress Belge bağlamında hata ayıklama adresi Haritalar.
GetLanguage Hata ayıklama adresinde kodu derlemek için kullanılan dili alır.
GetGlobalContainer Kullanımdan kaldırıldı. Kullanmayın.
GetMethodFieldsByName Tam yöntem adını temsil eden alanı alır.
GetClassTypeByName Tam sınıf adını temsil eden sınıf alanı türünü alır.
GetNamespacesUsedAtAddress Hata ayıklama adresiyle ilişkili ad alanları için bir numaralandırıcı oluşturur.
GetTypeByName Simge türüne bir simge adı Haritalar.
GetNextAddress Bir yöntemdeki belirli bir hata ayıklama adresini izleyen hata ayıklama adresini alır.

Açıklamalar

Bu arabirim, belge konumlarını hata ayıklama adreslerine eşler ve bunun tersi de geçerlidir.

Gereksinimler

Üst bilgi: sh.h

Ad Alanı: Microsoft.VisualStudio.Debugger.Interop

Derleme: Microsoft.VisualStudio.Debugger.Interop.dll

Örnek

Bu örnekte, GUID değeri (hata ayıklama altyapısının bu değeri bilmesi gerekir) göz önünde bulundurularak sembol sağlayıcısının örneğini oluşturma adımları gösterilmektedir.

// A debug engine uses its own symbol provider and would know the GUID
// of that provider.
IDebugSymbolProvider *GetSymbolProvider(GUID *pSymbolProviderGuid)
{
    // This is typically defined globally. For this example, it is
    // defined here.
    static const WCHAR strRegistrationRoot[] = L"Software\\Microsoft\\VisualStudio\\8.0Exp";
    IDebugSymbolProvider *pProvider = NULL;
    if (pSymbolProviderGuid != NULL) {
        CLSID clsidProvider = { 0 };
        ::GetSPMetric(*pSymbolProviderGuid,
                      storetypeFile,
                      metricCLSID,
                      &clsidProvider,
                      strRegistrationRoot);
        if (IsEqualGUID(clsidProvider,GUID_NULL)) {
            // No file type provider, try metadata provider.
            ::GetSPMetric(*pSymbolProviderGuid,
                          ::storetypeMetadata,
                          metricCLSID,
                          &clsidProvider,
                          strRegistrationRoot);
        }
        if (!IsEqualGUID(clsidProvider,GUID_NULL)) {
            CComPtr<IDebugSymbolProvider> spSymbolProvider;
            spSymbolProvider.CoCreateInstance(clsidProvider);
            if (spSymbolProvider != NULL) {
                pProvider = spSymbolProvider.Detach();
            }
        }
    }
    return(pProvider);
}

Ayrıca bkz.