【解决思路】当前不会命中断点,还未为文档加载任何符号
問題:
????????在調試代碼過程中,計算機突然藍屏而強制關閉并重啟,以至于vs在運行調試的過程中就在非正常的情況下被迫關閉。
????????重啟之后,繼續打開并運行項目,卻發現無法進行調試代碼。于是我把鼠標移到斷點的紅色圖標,有提示:當前不會命中斷點,還未為文檔加載任何符號”。
? ? ? ? 文章標題前綴標注了【解決思路】而并非【已解決】。因為導致這個問題的原因是有很多種可能性,并不能確保我提供的解決方案,在每次遇到這個問題時都能夠運用得上。但解決思路過程是我寫此文的根本目的。
解決過程:
1.
刪掉了obj文件和bin文件,重新清理并生成解決方案之后。(首要做法,但未解決)
分析:
- 我以為是上次編譯的文件和新編輯的代碼不匹配的問題造成的,結果不是這個原因。
- 猜測:有可能是生成PDB文件可能有問題,或者PDB讀取器找不到PDB文件。
2.
百度常用到的解決方法統統試了一遍,比如更改調試設置啊,取消勾選“要求源文件與原始版本完全匹配”的選項啊等等,結果還是沒法解決掉。(放縱法:未解決)
分析:
- 排除了第一點分析原因的可能性。
3.
試著在vs 2017運行其他幾個項目,比如C++項目,WPF項目,結果都是無法斷點調試;再在vs 2019環境里編譯運行是可以運行的,可以定位到是vs本身的問題,跟項目無關。
分析:
- 猜測是因為藍屏原因導致強制重啟計算機,隨即強制關閉正在運行的vs,以至于vs調試功能壞掉了。(排除法,未解決,已大致定位到原因之處)
3.
這次朋友來了興趣,幫我一起尋找問題,最終看了項目編譯之后的輸出信息,再跟另外vs 2019編譯后的輸出信息進行對比,發現了兩者列出來的文字描述不一致。
vs 2019正常列出的信息大致如下:
xx......已跳過加載符號。模塊進行了優化,并且調試器選項“僅我的代碼”已啟用。
而vs 2017輸出的內容是:
xx....未能加載 PDB 符號讀取器。
分析:
- 加載 PDB 符號讀取器已經損壞了(寫到此處,電腦崩潰死機,已找到問題根源)
- 由于藍屏強制重啟計算機的原因,導致在vs2017運行調試過程中,把加載 PDB 符號讀取器弄壞了
4.最終利用VS自帶修復工具進行修復,結果是可以成功調試了。(已解決)
5.最后還存在著修復前VS遺留的一個問題,但這并不重要,并不是本文所提到的問題導致的。(因此這點可以忽略掉)
遺留問題:如果有出現過運行項目時彈出需要選擇“Debugger調試器“”xxx即時調試“的提示彈窗,在這里可以找到解釋和解決方法(刪除兩個注冊表的信息便可):
Debug using the Just-In-Time Debugger - Visual Studio (Windows) | Microsoft Docs
6.修復完VS后,由于重置了vs環境一小部分配置的原因,我的項目出現了小毛病,沒法正常跑通。但和本文提到的問題沒有一點關系,重新部署應用就好。(忽略這點)
反思總結:
????????花了三四個小時去解決這個問題,我為此而感到有些不值。但是自己又不想重裝VS,因為麻煩,還得重新設置環境,后果也可能重裝不好。沒辦法,只能硬著頭皮繼續排查下去。除此之外,我很感謝朋友提供了重要的解決思路。
????????幾乎嘗試了網上所提供的常見方法,結果用在我這個問題上卻是不可行的。然后我又像是無頭蒼蠅一樣,沒有認真去找問題的根源,只急于尋求解決方法,也沒有想著別人為什么要這么做,這樣子就會做很多無用功。
????????自己解決問題的能力還欠缺,思維還是有些死板的。剛開始時就不應該過于依賴百度出來的解決方案,而是更應該先去找產生問題的根源。
????????通過這次的經歷,我對微軟的產品有些失望了,埋的坑確實有點多,也許是因為自身的經驗不夠吧,再加上平時忙于敲代碼,也沒心思去搗鼓“和工作無關的事情”。以后肯定還會遇到許多坑的。
????????這篇文章先記錄到這里,目的是為在自己以后工作中遇到相似難題時,提醒自己解決問題時要靈活處理。同時,我也希望能夠幫助到正遇這個問題卻沒法解決的你。
記錄于2022.4
參考資料:
vs 2012 調試不了js -- solution 中script document顯示不出來_越努力,越幸運的技術博客_51CTO博客
總結
以上是生活随笔為你收集整理的【解决思路】当前不会命中断点,还未为文档加载任何符号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蜂鸟速递-无人机快递智能系统 QT编写(
- 下一篇: 985吉林大学南下广东,规划校区建设