启用.NET Core源码调试后遇问题,求解决或恢复初始设置
.NET Core源码调试优化与异常定位修复方案
一、当前问题根源
- 符号加载慢:配置了自动加载所有模块符号,且频繁从远程服务器拉取未缓存的符号文件
- 异常定位混乱:调试器优先追踪.NET Core框架内部异常栈,跳过业务代码的异常抛出点
二、兼顾源码调试与正常异常捕获的配置优化
1. 调试常规设置调整
打开Tools -> Options -> Debugging -> General:
- 保留
Enable source server support(用于拉取.NET Core源码符号) - 取消勾选
Enable .Net Framework source stepping(该选项针对.NET Framework,会加载不必要的额外符号) - 勾选
Require source files to exactly match the original version(避免加载不匹配的框架源码,减少异常定位偏差)
2. 符号加载策略优化
打开Tools -> Options -> Debugging -> Symbols:
- 保留
Microsoft Symbol Servers和Nuget.org Symbol Servers,指定本地缓存目录(如C:\SymbolCache),确保符号仅下载一次后从本地读取 - 将加载策略从
Load all modules, unless excluded改为Load modules only when needed,让调试器仅在你单步进入框架代码时才加载对应符号,大幅降低启动耗时 - 若需精准控制,可选择
Load only specified modules,手动添加需要调试的.NET Core核心模块(如System.Private.CoreLib.dll、业务依赖的特定框架库)
3. 异常捕获规则调整
打开Debug -> Windows -> Exception Settings:
- 确保勾选业务代码常见的异常类型(如
System.NullReferenceException、System.ArgumentException等) - 右键目标异常类型,选择
Edit Conditions,添加Module Name排除规则,排除.NET Core框架模块(如含System.、Microsoft.前缀的模块),让调试器优先在业务代码中中断异常
三、恢复修改前的默认设置(若上述优化无效)
1. 重置调试常规设置
打开Tools -> Options -> Debugging -> General:
- 取消勾选
Enable .Net Framework source stepping和Enable source server support - 勾选
Require source files to exactly match the original version - 点击页面底部的
Restore Defaults按钮,恢复常规设置默认值
2. 重置符号设置
打开Tools -> Options -> Debugging -> Symbols:
- 删除
Microsoft Symbol Servers和Nuget.org Symbol Servers - 将加载策略改回默认的
Automatically load symbols for modules that are outside my code - 点击
Restore Defaults按钮恢复符号设置默认值
内容的提问来源于stack exchange,提问作者Tessaract
相关产品推荐
相关产品推荐

