visual studio偵錯失效

  • 2532
  • 0

在跑程式時遇到了無法偵錯的情況....

下中斷點時出現了以下訊息:

The breakpoint will not currently be hit. No symbols have been loaded for this document

經追查後發現output視窗有一些特殊的訊息: 

Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

Use a debug build configuration or disable the debug option 'Enable Just My Code'.

先了解Just My Code

1.從已開啟的專案建立的組件(dll),都視為使用者程式碼(user code),也就是my code。

2.當組件被最佳化找不到pdb檔案時,視為非使用者程式碼(Non user code)。

 

解決方法

1. 在output視窗所提示的disable the debug option 'Enable Just My Code'

Debug -> Options

2. 因為預設visual studio會幫忙把程式最佳化, 所以只要把最佳化的設定取消即可(最佳化後屬於Just My Code)

專案右鍵 -> 屬性, 點選建置的選項取消勾選 最佳化程式碼

最佳化程式碼目的是讓 C# compiler 後的檔案更小 以提升執行時的效能

 

引用參考: 

https://dotblogs.com.tw/stanley14/2016/03/11/190123

https://marcus116.blogspot.com/2018/12/visualstudio-skill-loading-symbols-just-my-code.html

https://blog.darkthread.net/blog/smart-compiler/