Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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);
}