JetBrains Rider调试Unity时跳入Package Cache而非用户代码求助
解决Rider调试Unity时跳入Package Cache内部代码的问题
问题背景
Windows 10系统下,使用Rider 2024.3.6配合Unity 6000.0.34f1开发,调试UI Button绑定的自定义方法时出现异常:
- 在自定义方法内打断点,用F8(Step Over)单步调试
- 执行到方法最后一行按F8时,未返回Unity主循环,反而跳入Unity Package Cache内的
Button.cs等API内部代码 - 持续按F8会不断深入Unity内部代码,严重拖慢调试效率
已尝试过禁用“Enable external source debug”、重装Rider、切换Unity调试后端等方法,均无效,但在Visual Studio中调试同一项目正常。
有效解决方法
1. 配置Rider调试跳过规则
- 打开Rider设置(快捷键
Ctrl+Alt+S),找到Build, Execution, Deployment > Debugger > Stepping - 在Skip classes列表中添加以下规则:
UnityEngine.*UnityEngine.UI.*UnityEditor.*
- 勾选Skip non-user code选项(这是核心设置,之前容易忽略)
- 保存设置后重启调试
2. 调整Unity调试符号设置
- 打开Unity编辑器,进入
Edit > Project Settings > Player > Other Settings > Configuration - 将Debugging Symbols设置为
Only user code(如果完全不需要调试Unity内部代码,也可以选None) - 重启Unity和Rider
3. 优化Rider的Unity插件配置
- 在Rider中打开
File > Settings > Languages & Frameworks > Unity Engine - 找到Debugger相关选项,勾选Do not debug external packages
- 确保Use Unity's debug engine处于启用状态
补充提示
- 之前尝试的Step Filters仅针对JavaScript,对C#调试无效,需要用上述Stepping规则来配置C#的跳过项
- 如果还是有问题,可以尝试清除Rider缓存:点击
File > Invalidate Caches...,选择清除缓存并重启Rider
内容的提问来源于stack exchange,提问作者alterego
相关产品推荐
相关产品推荐

