2010-05-13 17 views
6

Yığın izlemesi neden "satır 0", , ancak yığın izinde yalnızca bir çerçeve için gösterilsin? Örn.,Hatalı satır numarasıyla yığın izi oluşturma

örn.

... 
at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) 
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() 
at My.LibraryA.Some.Method():line 16 
at My.LibraryB.Some.OtherMethod():line 0 
at My.LibraryB.Some.Method():line 22 
at My.LibraryA.Some.Method():line 10 

Arka plan:

Bir istisna ile başarısız olduğu ve günlük dosyasına bir yığın izleme giriş bir uygulama vardır. Uygulama oluşturulduğunda, tüm derlemeler tam hata ayıklama bilgisi (Project Properties -> Build -> Advanced -> Debug Info -> Full) ile derlendi ve böylece PDB dosyaları oluşturuldu. Hatanın nereden geldiğini teşhis etmeme yardımcı olmak için PDB dosyalarını uygulamanın bin dizinine bıraktım ve istisnayı yeniden ürettim. Her bir yığın çerçevesi için tüm satır numaraları, kaynağı olarak "satır 0" görüntüleyen hariç, doğru görünür.

+0

En iyileştirmeler açıkken derlenmiş mi? (Unutmayın, optimizasyonları açma/kapama ve açma/kapama ve açma/kapatma, ortogonal anahtarlardır.) Eğer öyleyse, jitter inlining veya orijinal kodun olduğu yerde çalışmayı zorlaştırabilecek diğer optimizasyonlar yapmayı seçebilir. –

+0

@Eric: evet öyleydi. Gerçek hat numarasını almanın bir yolu var mı? – adrianbanks

+1

Elbette. Optimizasyonlar kapalıyken derleyin. –

cevap

3

Bu, Eric'in önerdiği gibi, bunların yönteminin alt sınırındaydı.

Orijinal hatayı yerel olarak yeniden oluşturmayı başardım, ancak yalnızca bir yayın oluşturma derlemesinde derleme yaparken. PDB'lere sahip olduğum için, koddan geçip sorunu bulabilirdim.

İlgili konular