Visual Studio 當前不會命中斷點的問題


這個問題一般有兩個版本

1.當前不會命中斷點,還沒有為該文檔加載任何符號。

2.當前不會命中斷點,源代碼與原始版本不同。

要解決第一個問題,就要了解一種文件格式“PDB(Program DataBase)”,我們在給一個.Net程序集設置斷點的時候,所有的調試信息都存放在這個文件,這里不打算深入探討它,只需要知道它描述了我們程序集的斷點,要調試程序就得加載它就夠了.

那么第一個問題的描述我們可以看成是沒有加載到PDB文件或者加載失敗了,解決方法是

在程序調試時,使用Visual Studio的 調試》窗口》模塊 查看當前程序加載的所有模塊,找到你要調試的模塊,右鍵菜單中就有一個加載符號的選項,選擇對應的PDB文件即可。

image

關於PDB文件更詳細的介紹  PDB文件概說

 

現在來討論第二個問題

其實這個問題應該是很容易解決的,我在網上搜索的時候發現很多人沒描述到重點,甚至是重新建立了一個項目來解決.我們知道每次F5開始調試程序都算是生成了一個新版本,那么這個問題的極有可能就是PDB文件記錄的源碼版本與你現在調試的版本不一致.

再讓我們想想什么時候會出現這種情況呢,常見的會影響到程序版本的操作就是當你編譯失敗時,Visual Studio詢問你是否繼續並運行上次的成功生成

image

 

這個時候應該就影響到了程序的版本,但我有個不明白的地方就是為何PDB文件不會每次編譯都重新生成呢?還是以上推斷另有隱情?

那么這個時候解決方案就只能是同一PDB文件與源碼的版本一致啦,我一般圖省事,都是清理整個解決方案再重新生成,解決.

 

以上就是我對這個問題的一些經驗,我覺得只能解決問題(反正我每次都可以( ̄y▽ ̄)╭),卻感覺還沒有摸到這個問題的更深本質,希望園子里遇到過的都來探討一下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM