2009-09-19 91 views
0

如果我有一個應用程序依賴於包含我的核心類的.dll。我注意到,當調試主應用程序,它進入.dll,調試程序通過(根據我的請求)空行!?爲什麼是這樣?調試問題

有時,當我調試一個asp.net應用程序並得到一個ysod時,我沒有得到帶有錯誤或行號的文件名,但是我得到了ASP.NET/.NET Framework版本。爲什麼是這樣?

順便說一句,我做了一個關於ysod發生的前一個線程,但在最後一行執行的步驟(我把一個斷點)執行後,YSOD發生 - 所以我無法通過逐步找到該行。這是/是因爲錯誤的代碼在項目引用中。

感謝

回答

4

有一個很好的機會,你所引用的DLL的版本是與源代碼同步。

當DLL是解決方案的一部分並且您正在使用項目引用引用它時,會發生這種情況嗎?

+0

這不會導致調試以獲得線錯誤。與編譯的程序集匹配的代碼行位於調試文件中,而不是dll本身。 – David 2009-09-19 01:58:29

+0

或者如果我錯了,請給我解釋一下。 – David 2009-09-19 01:59:11

+0

我曾經有過這種情況。當我將斷點設置爲跳線(例如空白)時,這是第一個忘記更新我引用的DLL以匹配我正在查看的源代碼的指示。 – 2009-09-19 02:19:32

2

就單步執行空白行而言,聽起來像dll的調試符號文件(* .pdb)沒有被更新。

這也可能導致您提到的第二個症狀。

編輯 - 添加

請看看這篇文章,我的答案背後的推理:

http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspx

+0

我有一個大項目,我將自己的刪除腳本添加到構建過程中,以保持* .pdb更新。 – NitroxDM 2009-09-19 06:11:57

+0

我實際上在幾周前閱讀過。良好的鏈接,但。看我的編輯。 – dotnetdev 2009-09-19 16:13:53