在與同事 pair programming 進行開發時,反應他筆電的 Visual Studio 在偵錯時都無法進到中斷點,會出現白底紅圈加上驚嘆號(一般是紅色圈圈),滑鼠移上去會出現 目前無法叫用中斷點 未載入這個文件的符號 ,情境如下示意圖
處理方式
整理以下幾種可能發生的原因,以及遇到當下該如何進行問題排除
確認 Debug Mode
確認 Visual Studio 方案組態設定是否為 Debug Mode,如果為 Release Mode 則所有中斷點都不會進去
(不要鬧了 你醒醒阿阿 !!!!)
設定偵錯 - Just My Code
來回到 Visual Studio IDE 輸出視窗來源選擇 偵錯模式,可以發現在載入 dll 的過程中有些不一樣的訊息提示,在無法偵錯中斷點是白底紅圈圈時皆顯示 已略過載入符號,模組已最佳化,並已啟用 [Just My Code] 偵錯工具選項,這段文字在說甚麼 ? 心想誰偷改我電腦設定 or 準備重灌 (誤,原因如下
當在 Application 進行 Debug 的時候,debugger 會嘗試去找正在執行的 symbols 中的代碼,它才可以知道開發者在哪段 Code 有設定中斷點,蒐集加入監看示的變數內容或是檢查 Call Stack 等資訊,在 Visual Studio 中 debug 時預設會跳過不屬於此專案的代碼或是 assemblies,這設定名稱為 Just My Code,如果想取消此設定可以透過以下方調整
設定方式 : Visual Studio 點選工具 > 選項 > 偵錯 > 一般 > 取消 啟用 Just My Code 選項
設定 最佳化程式碼
設定方式 : 專案點選右鍵 > 屬性 > 建置 > 取消 最佳化程式碼
什麼是最佳化程式碼 ?
- 此設定預設是開啟,當 C# compiler 時會幫你的程式碼進行最佳化,目的是讓 C# compiler 後的檔案更小 以提升執行時的效能 ( 詳細可以參考 黑暗大 smart Compiler )
後續
以透過以上設定,就可以順利進入中斷點
可以繼續寫更多 bug 嚕 (握拳
參考
Just My Code
Smart C# Compiler
最佳化您的程式碼
'Just My Code' is Enabled ?
0 意見:
張貼留言