JetBrains Rider 中未命中断点?
Breakpoints not being hit in JetBrains Rider?
我正在尝试在 JetBrains Rider 中设置断点,但调试器没有中断。
我确信应用程序应该到达我试图中断的代码,因为程序中出现了更改字符串文字。
我已经完全重新安装了所有 JetBrains 程序(擦除设置)。我也尝试了这个线程中的每个答案:break point is not hitting while debugging,没有运气。
此错误不会出现在 Visual Studio 中,但会出现在 Rider 中的任何项目中。
我在另一台 PC 上使用的另一份 Rider 也没有发生这种情况。
非常感谢任何帮助,谢谢!
我找到了导致它的原因。
从 Rider 2018.1.3 开始,您运行 的解决方案必须与您正在使用的 Rider 副本位于同一磁盘上。
在 JetBrains 支持 here 上引用了此问题。
您可以通过将解决方案移动到同一驱动器或重新安装 Rider 来临时解决此问题。
关于上面 Jessica 的回答,使用系统绝对路径(即 /System/Volumes/Data/Users/...
)在 Rider 中打开解决方案似乎就像在单独的驱动器上一样。
在让自己疯狂了大约四个小时后,我创建了一个新的解决方案并将解决方案目录从系统路径更改为 /Users/...
然后将我的项目复制到这个修复了断点的新解决方案,然后打开Rider 欢迎屏幕中的项目现在将解决方案目录显示为相对路径 (~/Users/...
)
还有一个警告:我在离开后再次开始使用 Rider,我按下的是 "play"(三角形)按钮,而不是带有错误图片的按钮。
(天啊!)
您(或遇到此问题的其他人)的另一个解决方案:
当您的配置或启动设置中有 "COMPlus_EnableDiagnostics": "0"
时,您也将无法命中断点。
清理并重建解决方案,然后删除并读取断点对我有用!
我之前做的是:
- 打开解决方案
- 设置一些断点
- 单击 Rider 中的 'bug' 按钮(播放按钮旁边)
- Chrome 会自动打开 URL 指向我的服务
- 服务会按预期运行,但断点不起作用
- 停止服务
- 修改部分代码
- 启动服务
- 刷新第 4 步中的 Chrome Windows
- 我会在 Chrome 中看到修改。但是不会命中任何断点。
现在我唯一改变的是在第 2 步之后我现在做一个
Run --> Attach to a local process... --> w3wp
之后,我只是按照之前的步骤进行操作,但是现在断点确实被击中了...
None 这些解决方案有效。通过 Rider 界面清除缓存的解决方案以及类似的东西,其中 none 有效。 None 个。
问题:以前工作的自定义代码引用项目(不是某些外部库或 nuget 包)打破了断点。包外的断点有效,但在引用的项目中无效。我收到了无法解析方法的“停止标志”符号。
唯一有效的方法是从我的 mac 上的应用程序支持和缓存中完全删除 Rider 的所有实例和以前的实例。按照他们网站上的说明完全删除 Rider,然后重新安装它,我能够让断点再次工作。抱歉,但对于你们中的某些人来说,这可能是您唯一能做的事情。
对于 .Net Framework 项目:
如果 Rider 将调试器附加到与 IIS 正在使用的进程不同的进程,就会发生这种情况。
- 在 Rider 菜单上打开 运行,然后单击“附加到进程”或 ctrl+alt+F5
- 键入 w3wp,这将找到 IIS 运行正在运行的所有进程。如果您发现多个进程,您可以将鼠标悬停在它们上面以查看哪个 AppPool 与该进程相关。
- 单击进程以将调试器附加到它。
- 现在应该命中断点了。
并确保您在 运行 您的项目 (http://localhost:XXXX) 时使用 Rider 为您提供的 URL,因为 Rider 使用的 URL可能与您为 IIS 设置的主机名不同。
如果您使用的是 .NET 核心和 IIS,请确保应用程序池在基本设置中的“.NET CLR 版本”下有 'No Managed Code':
我正在尝试在 JetBrains Rider 中设置断点,但调试器没有中断。
我确信应用程序应该到达我试图中断的代码,因为程序中出现了更改字符串文字。
我已经完全重新安装了所有 JetBrains 程序(擦除设置)。我也尝试了这个线程中的每个答案:break point is not hitting while debugging,没有运气。
此错误不会出现在 Visual Studio 中,但会出现在 Rider 中的任何项目中。
我在另一台 PC 上使用的另一份 Rider 也没有发生这种情况。
非常感谢任何帮助,谢谢!
我找到了导致它的原因。
从 Rider 2018.1.3 开始,您运行 的解决方案必须与您正在使用的 Rider 副本位于同一磁盘上。
在 JetBrains 支持 here 上引用了此问题。
您可以通过将解决方案移动到同一驱动器或重新安装 Rider 来临时解决此问题。
关于上面 Jessica 的回答,使用系统绝对路径(即 /System/Volumes/Data/Users/...
)在 Rider 中打开解决方案似乎就像在单独的驱动器上一样。
在让自己疯狂了大约四个小时后,我创建了一个新的解决方案并将解决方案目录从系统路径更改为 /Users/...
然后将我的项目复制到这个修复了断点的新解决方案,然后打开Rider 欢迎屏幕中的项目现在将解决方案目录显示为相对路径 (~/Users/...
)
还有一个警告:我在离开后再次开始使用 Rider,我按下的是 "play"(三角形)按钮,而不是带有错误图片的按钮。
(天啊!)
您(或遇到此问题的其他人)的另一个解决方案:
当您的配置或启动设置中有 "COMPlus_EnableDiagnostics": "0"
时,您也将无法命中断点。
清理并重建解决方案,然后删除并读取断点对我有用!
我之前做的是:
- 打开解决方案
- 设置一些断点
- 单击 Rider 中的 'bug' 按钮(播放按钮旁边)
- Chrome 会自动打开 URL 指向我的服务
- 服务会按预期运行,但断点不起作用
- 停止服务
- 修改部分代码
- 启动服务
- 刷新第 4 步中的 Chrome Windows
- 我会在 Chrome 中看到修改。但是不会命中任何断点。
现在我唯一改变的是在第 2 步之后我现在做一个
Run --> Attach to a local process... --> w3wp
之后,我只是按照之前的步骤进行操作,但是现在断点确实被击中了...
None 这些解决方案有效。通过 Rider 界面清除缓存的解决方案以及类似的东西,其中 none 有效。 None 个。
问题:以前工作的自定义代码引用项目(不是某些外部库或 nuget 包)打破了断点。包外的断点有效,但在引用的项目中无效。我收到了无法解析方法的“停止标志”符号。
唯一有效的方法是从我的 mac 上的应用程序支持和缓存中完全删除 Rider 的所有实例和以前的实例。按照他们网站上的说明完全删除 Rider,然后重新安装它,我能够让断点再次工作。抱歉,但对于你们中的某些人来说,这可能是您唯一能做的事情。
对于 .Net Framework 项目:
如果 Rider 将调试器附加到与 IIS 正在使用的进程不同的进程,就会发生这种情况。
- 在 Rider 菜单上打开 运行,然后单击“附加到进程”或 ctrl+alt+F5
- 键入 w3wp,这将找到 IIS 运行正在运行的所有进程。如果您发现多个进程,您可以将鼠标悬停在它们上面以查看哪个 AppPool 与该进程相关。
- 单击进程以将调试器附加到它。
- 现在应该命中断点了。
并确保您在 运行 您的项目 (http://localhost:XXXX) 时使用 Rider 为您提供的 URL,因为 Rider 使用的 URL可能与您为 IIS 设置的主机名不同。
如果您使用的是 .NET 核心和 IIS,请确保应用程序池在基本设置中的“.NET CLR 版本”下有 'No Managed Code':