由於.net core 是開源的。所以可以讓.net庫文件參與程序調試。具體vs2022配置如下
1、設置VS2022 加載程序數據文件(.pdb俗稱符號文件)
1)選擇工具>選項>調試>符號,並確保已選中“ Microsoft符號服務器(.NET框架相關的庫)和NuGet.org符號服務器”選項。為符號高速緩存指定目錄是避免再次下載相同符號,提高源碼查看效率。
2)在“工具” >“選項” >“調試” >“常規”中禁用【啟用“僅我的代碼”】
3)在“工具” >“環境” >“文檔” >勾選【在解決方案的管理器中顯示雜項】點擊完成,再次運行調試的時候,編譯器就會從https://raw.githubusercontent.com/下載Dll庫的源代碼(僅限.net core)
2、Visual Studio 提供兩種 加載模式:
- 自動加載所有模塊的符號,除非排除:如標題所示,除非通過單擊"指定排除的模塊"將模塊添加到排除列表中,否則 Visual Studio 將嘗試為進程中的所有模塊加載符號。如果您希望為進程中的幾乎所有內容加載符號,或者由於內存或調試啟動性能原因,您不希望加載少數非常大的符號,則通常需要此設置。
- 僅指定模塊:默認情況下,此設置將加載磁盤上二進制文件旁邊的符號,但不會嘗試加載任何其他模塊的符號,除非您通過單擊"指定模塊"將它們添加到包含列表中。例如,如果您想使用手動加載,但始終加載名稱中帶有"Microsoft"的任何內容的符號,則可以輸入"*Microsoft*"
vs2022 默認是加載所有符號的,這大型項目中式很影響調試的。所以在大型項目中要設置成按需加載符號,如下操作:
符號未加載的一些常見原因包括:
- 符號路徑未指向正確的位置
- 符號文件來自與進程中加載的模塊版本不同的模塊版本
- Visual Studio 要求符號文件來自與模塊完全相同的內部版本。它無法加載來自不同版本的符號,即使源代碼相同
- [僅限托管]"僅我的代碼"設置阻止調試器加載符號文件