【问题标题】:Breakpoints not being hit in JetBrains Rider?JetBrains Rider 中没有击中断点?
【发布时间】:2019-01-06 14:46:09
【问题描述】:

我正在尝试在 JetBrains Rider 中设置断点,但调试器没有中断。

我确信应用程序应该到达我试图中断的代码,因为更改字符串文字会出现在程序中。

我已经完全重新安装了我的所有 JetBrains 程序(擦除设置)。我也尝试了此线程中的每个答案:break point is not hitting while debugging,但没有运气。

此错误不会出现在 Visual Studio 中,但会出现在 Rider 中的任何项目中。

我在另一台 PC 上使用的其他 Rider 副本也不会发生这种情况。

感谢您的帮助,谢谢!

【问题讨论】:

    标签: c# debugging breakpoints jetbrains-ide rider


    【解决方案1】:

    还有一个警告:我在缺席后再次开始使用 Rider,我按的是“播放”(三角形)按钮,而不是带有错误图片的按钮。

    (天啊!)

    【讨论】:

    • 另外给像我一样从VS切换过来的人注意一下:F5键不开始调试,只是运行代码;即使使用 VS 键盘映射。
    【解决方案2】:

    我找到了造成它的原因。

    从 Rider 2018.1.3 开始,您正在运行的解决方案必须与您正在使用的 Rider 副本位于同一磁盘上。

    JetBrains 支持here 引用了此问题。

    您可以通过将解决方案移至同一驱动器或重新安装 Rider 来临时解决此问题。

    【讨论】:

    • 这也是我的问题,但调试在 VS2019 中有效 - 在 Rider 中,当将鼠标悬停在禁用的断点上时,您将看到一条消息,例如在 D:\Folder\Code\Script.cs 中找不到模块。将项目移动到与 Rider 相同的驱动器,清理解决方案,重新启动窗口,从 Rider 运行成功命中断点。还要确保您的 Unity 项目构建设置启用了“开发模式”和“脚本调试”。
    【解决方案3】:

    对于 .Net Framework 项目:

    如果 Rider 将调试器附加到与 IIS 正在使用的进程不同的进程,就会发生这种情况。

    • 在 Rider 菜单上打开 Run,然后单击“附加到进程”或 ctrl+alt+F5
    • 键入 w3wp,这将找到 IIS 正在运行的所有进程。如果您发现多个进程,您可以将鼠标悬停在它们上以查看哪个 AppPool 与该进程相关。
    • 单击进程以将调试器附加到它。
    • 现在应该命中断点。

    并确保您使用的是 Rider 在运行项目时为您提供的 URL (http://localhost:XXXX),因为 Rider 使用的 URL 可能与您为 IIS 设置的主机名不同。

    【讨论】:

      【解决方案4】:

      我之前做的是:

      1. 打开解决方案
      2. 设置一些断点
      3. 点击 Rider 中的“错误”按钮(播放按钮旁边)
      4. Chrome 会自动打开一个指向我的服务的 URL
      5. 服务将按预期工作,但断点不起作用
      6. 停止服务
      7. 修改部分代码
      8. 启动服务
      9. 从第 4 步刷新 Chrome 窗口
      10. 我会在 Chrome 中看到修改。但不会遇到断点。

      现在我唯一改变的是在第 2 步之后我现在做一个

      运行 --> 附加到本地进程... --> w3wp

      在此之后,我只是执行与之前相同的步骤,但现在断点确实被命中了......

      Refrence

      【讨论】:

        【解决方案5】:

        关于上面 Jessica 的回答,使用系统绝对路径(即/System/Volumes/Data/Users/...)在 Rider 中打开解决方案似乎就像它在单独的驱动器上一样。

        在把自己逼疯了大约四个小时后,我创建了一个新的解决方案并将解决方案目录从系统路径更改为 /Users/... 然后将我的项目复制到这个修复断点的新解决方案中,并从 Rider 打开项目欢迎屏幕现在将解决方案目录显示为相对路径 (~/Users/...)

        【讨论】:

          【解决方案6】:

          您(或遇到此问题的其他人)的另一种解决方案:

          当您的配置或launchSettings 中有"COMPlus_EnableDiagnostics": "0" 时,您也将无法命中断点。

          【讨论】:

          • Ummm 这个设置到底在哪里可以找到?
          • 可以通过环境变量设置。 appsettings.json,启动设置...
          【解决方案7】:

          清理和重建解决方案,然后删除和读取断点对我有用!

          【讨论】:

            【解决方案8】:

            这些解决方案均无效。通过 Rider 界面和类似的东西清除缓存的解决方案,都没有奏效。一个都没有。

            问题:以前工作的自定义代码引用项目(不是某些外部库或 nuget 包)破坏了断点。包外的断点有效,但在引用的项目中无效。我得到了无法解析方法的“停止标志”符号。

            唯一有效的方法是从我的 Mac 上的应用程序支持和缓存中彻底清除 Rider 的所有实例和以前的实例。按照说明在他们的网站上完全删除 Rider,然后重新安装它后,我能够让断点再次工作。抱歉,但对于你们中的一些人来说,这可能是您唯一能做的事情。

            【讨论】:

              【解决方案9】:

              如果您使用的是 .NET core 和 IIS,请确保应用程序池在基本设置的“.NET CLR 版本”下有“无托管代码”:

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2022-01-11
                • 1970-01-01
                • 2012-12-11
                • 2023-03-12
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多