只有累積,沒有奇蹟

2018年12月23日 星期日

[VS2017] 目前無法叫用中斷點 未載入這個文件的符號

問題
在與同事 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 意見:

張貼留言

Copyright © m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com