Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 27663|Yanıt: 0

[Kaynak] .net/c# log4net hata istisnası satır numarasının nedenini kaydetmez

[Bağlantıyı kopyala]
Yayınlandı 3.08.2017 14:13:01 | | | |
Yakın zamanda, bir üretim ortamında bir proje uygulandı ve bazı yöntemlerin anormal mesajlar çıkardığı keşfedildi

Ancak, sadece anormal hata bilgisi verilir ve anormal satır numarası yoktur; sadece belirli bir yöntemde model dönüşümünde bir sorun vardır

Ama onları tek tek karşılaştırayım, çok sinir bozucu, neden yanlış satır numarasını kaydetmiyorsunuz?

log4net günlük yapılandırması şu şekildedir:

C# Log4net log yapılandırması ayrıntılı olarak açıklanmıştır
http://www.itsvse.com/thread-2892-1-1.html
(Kaynak: Architect)

Yerel bilgisayarımda Home/Index yönteminde satır numarasının kaydedilip kaydedilmeyeceğini görmek için bilerek bir istisna mesajı yazdım:



Hata logu dosyasının satır numarasını kaydettiğini gördüm, bu kesinlikle log4net yapılandırmasında bir sorun değil, çünkü her iki taraftaki yapılandırma aynı

Derleme modunda bir sorun olabilir mi???

Yerel bilgisayarım hata ayıklama modunda ve resmi sunucu tarafından derlenen dll sürüm modunda

Sonra yerel projeyi yayın moduna aldım ve hâlâ bir plak satır numarası olduğunu gördüm.

Sonra, Baidu, ilk cümle:DLL'ye karşılık gelen .pdb dosyasını kopyalamanız gerekiyor

Peki, bu bir sorun mu? Sonra doğrudan bin dizinine gittim, dll'ye karşılık gelen .pdb dosyasını sildim, ardından web sitesini yeniledim ve istisna kaydını şu şekilde buldum:



Gerçekten de, anormal satır numarası kaydedilmiyor!!!!

Gerçekten .pdb sorunu mu!! .pdb dosyasını saklamanız gerekir ki anormal bir satır numarası kaydedilsin!!



PDB dosyası ne için?


PDB dosyaları: Her geliştiricinin bilmesi gerekenler

PDB dosyası nedir?

Çoğu geliştirici PDB dosyalarının yazılım hata ayıklama konusunda yardımcı olduğunu bilmelidir. Ama tam olarak nasıl çalıştığını bilmiyor olabiliriz. Bu makale, PDB dosyalarının depolanması ve içeriğini açıklar. Ayrıca, hata ayıklayıcının binaya karşılık gelen PDB dosyasını ve iki ayıklayıcıya karşılık gelen kaynak kod dosyasını nasıl bulduğunu da açıklar. Bu makale tüm Yerel ve Yönetilen geliştiriciler içindir.

Başlamadan önce iki terim tanımlayalım: özel derleme, geliştiricinin kendi makinesinde üretilen bir deri anlamına gelir; Genel derleme, yani kamuya açık bir yapım makinesinde oluşturulan bir derleme. Özel derleme nispeten basit, çünkü PDB ve binay aynı yerde ve genellikle sorunlarımız kamu sürümüyle ilgilidir.  

Tüm geliştiricilerin bilmesi gereken en önemli şey, "PDB dosyaları kaynak kodu kadar önemlidir" olması, onsuz hata ayıklaması bile mümkün değil. Genel derleme için, sembol sunucusunun tüm PDB'leri depolaması gerekir ve kullanıcı hata bildirdiğinde, hata ayıklayıcı otomatik olarak ilgili PDB dosyasını binayda bulabilir ve hem Visual Studio hem de Windbg sembol sunucusuna nasıl erişileceğini bilir. PDB ve binay sembol sunucusuna kaydetmeden önce, PDB çalıştırmasını kaynak indeksiyle de belirtmeniz gerekir; bu da PDB ile kaynağı ilişkilendirmek anlamına gelir.  

Sonraki kısım, Sembol Sunucusu ve Kaynak Sunucu İndeksleme'nin zaten kurulmuş olduğunu varsayar. TFS2010 yeni bir yapı için kaynak indeksleme ve sembol sunucusu kopyalaması kadar basit şekilde yapılabilir.

2. PDB dosyasının içeriği

PDB'nin içeriğini resmi olarak başlatan PDB, kamuya açık bir dosya formatı değildir, ancak Microsoft, PDB'den veri almak için bir API sağlar.

Yerel C++ PDB aşağıdaki bilgileri içerir:
* kamu, özel ve statik fonksiyon adresleri;
* Küresel değişkenin adı ve adresi;
* Yığın üzerindeki parametre ve yerel değişken isimleri ile ofsetler;
* sınıf, yapı ve veri tipi tanımları;
* x86'da yerel yığını dolaşmak için Frame Pointer Eksikliği verileri;
* Kaynak kod dosyasındaki isim ve satır sayısı;

.NET PDB yalnızca 2 bilgi parçası içerir:
* Kaynak kod dosya adı ve satır sayısı;
* ve yerel değişkenin adı;
* Diğer tüm veriler zaten . NET Meta Verileri;  





Önceki:Disk, yönetici tarafından belirlenen politika nedeniyle çevrimdışı durumda
Önümüzdeki:Birlikte bir iş kurmak için bir web sitesi teknisyeni bulun
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com