Simgeler hata ayıklama ve diğer tanılama araçları için kullanışlıdır. Sembol dosyalarının içeriği diller, derleyiciler ve platformlar arasında farklılık gösterir. Üst düzeyde simgeler, kaynak kod ile derleyici tarafından üretilen ikili kod arasında bir eşlemedir. Bu eşlemeler, kaynak satır numarası bilgilerini veya yerel değişken adlarını çözümlemek için Visual Studio ve Visual Studio Code gibi araçlar tarafından kullanılır.
Simgelerle ilgili Windows belgeleri, Windows sembolleri hakkında daha ayrıntılı bilgiler içerir, ancak kavramların çoğu diğer platformlar için de geçerlidir.
hakkında bilgi edinin. NET'in taşınabilir PDB biçimi
.NET Core, taşınabilir PDB olan yeni bir sembol dosyası (PDB) biçimi kullanıma sunulmuştur. Yalnızca Windows olan geleneksel PDB'lerin aksine taşınabilir PDB'ler tüm platformlarda oluşturulabilir ve okunabilir.
PDB nedir?
PDB dosyası, derleyici tarafından, özellikle hata ayıklayıcılar, ana yürütülebilir dosyada ne olduğu ve nasıl oluşturulduğu hakkında bilgi sağlamak için oluşturulan yardımcı bir dosyadır. Örneğin, hata ayıklayıcısı bir kesme noktası ayarlayabilmesi için 12. satırı foo.cs doğru yürütülebilir konuma eşlemek için bir PDB okur. Windows PDB biçimi uzun zamandır devam ediyor ve daha da eski olan diğer yerel hata ayıklama simgesi biçimlerinden gelişti. Hayatına yerel (C/C++) programlar için bir biçim olarak başladı. .NET Framework'ün ilk sürümü için Windows PDB biçimi .NET'i destekleyecek şekilde genişletilmişti.
Taşınabilir PDB biçimi .NET Core'da kullanıma sunulmuştur ve .NET hedeflendiğinde varsayılan olarak kullanılır. .NET Framework'i hedeflerken, proje dosyanızda belirterek <DebugType>portable</DebugType> taşınabilir PDB simgelerini etkinleştirebilirsiniz. Taşınabilir PDB biçimi ECMA-335 meta veri biçimini temel alır. Daha fazla bilgi için bkz . Taşınabilir PDB v1.0: Biçim Belirtimi. Tanılama araçları taşınabilir PDB dosyalarını okumak için kitaplığı kullanabilir System.Reflection.Metadata (örneğin, bkz System.Reflection.Metadata.Document. ).
Senaryonuz için doğru PDB biçimini kullanma
Taşınabilir PDB'ler veya Windows PDB'ler her yerde desteklenmez. Hangi biçimi kullanacağınıza karar vermek için projenizin nerede kullanılacağını ve hata ayıklanacağına karar verin. Her iki biçimde de kullanabilmek ve hata ayıklamak istediğiniz bir projeniz varsa, farklı derleme yapılandırmaları kullanabilir ve her iki tüketici türünü de desteklemek için projeyi iki kez oluşturabilirsiniz.
Taşınabilir PDB desteği
Taşınabilir PDB herhangi bir işletim sisteminde okunabilir ve yönetilen kod için önerilen sembol biçimidir. Ancak, desteklenmedikleri bir dizi eski araç ve uygulama vardır:
.NET Framework 4.7.1 veya önceki sürümleri hedefleyen uygulamalar: eşlemeleri olan yığın izlemelerini satır numaralarına geri yazdırma (ASP.NET hata sayfası gibi). Yöntemlerin adı etkilenmez, yalnızca kaynak dosya adları ve satır numaraları desteklenmez.
ildasm veya .NET yansıtıcısı gibi .NET kod ayrıştırıcılarını kullandığınızda, kaynak satır eşlemelerini veya yerel parametre adlarını görmezsiniz.
DIA'nın en son sürümleri ve WinDBG gibi okuma simgeleri için DIA kullanan araçlar taşınabilir PDB'leri destekler, ancak eski sürümler desteklemez.
Profil oluşturucuların taşınabilir PDB'leri desteklemeyen eski sürümleri olabilir.
Bunları desteklemeyen araçlarda taşınabilir PDB'leri kullanmak için, taşınabilir PDB'ler ile Windows PDB'ler arasında dönüştürme yapan Pdb2Pdb'yi kullanabilirsiniz.
Windows PDB desteği
Windows PDB'leri yalnızca Windows'da yazılabilir veya okunabilir. Yönetilen kod için Windows PDB'leri kullanmak eskidir ve yalnızca eski araçlar için gereklidir. Bazı yeni derleyici özellikleri yalnızca taşınabilir PDB'ler için uygulandığından, Windows PDB'leri yerine taşınabilir PDB'ler kullanmanız önerilir.
Ayrıca bkz.
dotnet-symbol , çerçeve ikili dosyalarının sembol dosyalarını indirmek için kullanılabilir
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Hatalarınızı hızla düzeltmek için Visual Studio Code’u kullanarak .NET uygulamanızın hatalarını verimli bir şekilde ayıklamayı öğrenin. C# uygulamalarınızı analiz etmek ve düzeltmek için Visual Studio Code içindeki etkileşimli hata ayıklayıcısını kullanın.