Apakah ada cara untuk menampilkan garis dalam pelacakan tumpukan untuk perakitan NET. Membangun / digunakan dalam mode Rilis?
MEMPERBARUI:
Aplikasi saya dibagi menjadi tiga proyek perpustakaan kelas dan satu proyek "situs" ASP.NET. Kesalahan yang saya coba lacak ada di salah satu dari tiga proyek perpustakaan kelas. Saya hanya menyebarkan file pdb untuk proyek perpustakaan kelas yang menghasilkan kesalahan "Referensi objek tidak disetel ke contoh objek".
Nomor baris masih belum muncul di pelacakan tumpukan. Apakah saya perlu menerapkan file pdb untuk semua proyek untuk mendapatkan nomor baris di pelacakan tumpukan?
Solusi kerja
Menerapkan file pdb untuk setiap aplikasi memperbaiki masalah nomor baris.
c#
.net
visual-studio
stack-trace
line-numbers
Michael Kniskern
sumber
sumber
Di VS2012 Anda juga perlu menghapus centang "Kecualikan simbol debug yang dihasilkan" di bagian Paket / Publikasikan Web di properti.
sumber
Solusi saya
Salin file pdb di folder yang sama dengan file yang dapat dieksekusi.
sekarang saya dapat melihat nomor baris saat menjalankan file exe.
inilah alasannya
http://msdn.microsoft.com/en-us/library/ee416588%28v=vs.85%29.aspx
sumber
Saya pernah mengalami masalah di masa lalu di mana saya merasa perlu untuk menyebarkan file PDB dengan rilis build untuk melacak kesalahan. Alasannya adalah, seperti yang Anda katakan, adalah bahwa pengecualian terjadi dalam metode yang sangat besar dan saya tidak dapat menunjukkan dengan tepat di mana itu terjadi.
Ini mungkin merupakan indikasi bahwa metode tersebut perlu difaktorkan ulang menjadi metode yang lebih kecil dan lebih terperinci. Tidak satu ukuran cocok untuk semua jawaban, tetapi pendekatan ini telah membantu saya dalam jangka pendek (saya sering menemukan bug selama refactoring) dan dalam jangka panjang.
Hanya pemikiran saja.
sumber
Sertakan simbol debug dengan paket build / deployment Anda.
sumber
Di VS 2008 Express, saya menemukannya di bawah Project Properties -> Compile -> Advanced Compile Options.
sumber
Ini bekerja setiap saat. Anda hanya perlu membuat substring pesan pelacakan tumpukan. Sangat Mudah! Juga, di vb.net Anda perlu melakukan "Show All Files" dan memasukkan pdb.
'Err is the exception passed to this function Dim lineGrab As String = err.StackTrace.Substring(err.StackTrace.Length - 5) Dim i As Integer = 0 While i < lineGrab.Length If (IsNumeric(lineGrab(i))) Then lineNo.Append(lineGrab(i)) End If i += 1 End While 'LineNo holds the number as a string
Versi C #:
string lineGrab = error.StackTrace.Substring(error.StackTrace.Length - 5); int i = 0; int value; while (i < lineGrab.Length) { if (int.TryParse(lineGrab[i].ToString(), out value)) { strLineNo.Append(lineGrab[i]); } i++; }
sumber