偵錯是Developer的左右手,上一次碰到問題是Visual Studio 2013時代,時光飛逝,
這一次不再挑戰自己的記憶體容量,筆記!
開發工具訊息: 請在偵錯效能下降的作業(例如無法叫用中斷點)中,使用Just My Code與應用程式編輯器最佳化的結果的發行組建。
今天想 Debug 有陣子沒開啟的專案時出現以下訊息:
1.透過MSDN了解什麼是Just My Code。
1.從已開啟的專案建立的組件(dll),都視為使用者程式碼(user code),也就是my code。
2.當組件被最佳化或找不到pdb檔案時,視為非使用者程式碼(Non user code)。
離題一下:
*有pdb就可以偵錯其他專案!
*DotNet framework library設定來源伺服器也是可以偵錯(http://referencesource.microsoft.com/symbols)
2.小結:當啟用只偵錯Just My code選項時:
- 使用者程式碼可以F11逐行偵錯(step into)
- 非使用者程式碼沒辦法F11逐行偵錯(step into)只能F10(step over)
3.測試後,找到解決辦法有2種:
A.停用只偵錯Just My Code的選項:
(表示使用者程式碼與非使用者程式碼都偵錯,即使專案組件因為最佳化而被視為非使用者程式碼也可以偵錯)
可以偵錯了!!
B.取消偵錯專案的最佳化程式碼:(讓專案組件維持使用者程式碼的分類)
如果希望維持Just My code(使用者程式碼)的勾選,可以到專案檔右鍵 > 屬性 > 建置 > 取消最佳化程式碼的選項。
如果還是沒辦法偵錯,可以在同一個專案建置視窗中,選右下角進階
檢查一下偵錯資訊要設定為full 或 pdb only。
呼~吃完晚餐繼續寫code,越忙得時候越胖,這禮拜要跑蘆竹濱海馬來減肉。
參考