让 Rails 5.2 上的应用程序的 VS Code IDE 调试正常工作?



>预期行为

在 VS 代码(或其他 IDE(中;

  • 将断点添加到 [App Root]/config/application.rb 的第一行; require_relative"启动">
  • 启动调试。
  • 调试器应在断点处停止

实际行为

  • 调试器继续而不停止
  • 注意:任何进一步执行 Rails 应用程序的断点都无法停止执行。

笔记;

查看 https://github.com/Shopify/bootsnap/issues/93,我认为此问题的发生是由于以下因素的组合; - 新的 Ruby 2.5 功能"删除trace指令"(https://bugs.ruby-lang.org/issues/14104( - Rails 5.2 包含引导宝石

注意:其他 IDE 中也出现了同样的问题; - 喷气脑; https://youtrack.jetbrains.com/issue/RUBY-20684 - 红宝石矿;https://github.com/ruby-debug/ruby-debug-ide/issues/139

我的环境

  • vscode-ruby版本:0.18.0
  • 拼音版本:红宝石 2.5.1p57(2018-03-29 修订版 63029( [x86_64-达尔文17]
  • 导轨版本:5.2.0
  • Ruby-debug-ide 版本:0.6.1
  • 降级版本:0.2.2
  • VS 代码版本: 1.22.2 (1.22.2(
  • 操作系统: macOS 10.13.4 (17E199(
  • 硬件(可选(:MacBook Pro(13 英寸,2012 年中(和 MacBook(13 英寸,2010 年中(
解决方法

  • 编辑 [app root]/config/boot.rb
  • 替换线;

    require 'bootsnap/setup' # Speed up boot time by caching expensive operations.

  • 跟;

    unless ( (('2.5.0'..'2.5.1').include? RUBY_VERSION) && defined?(Debugger) ) require 'bootsnap/setup' # Speed up boot time by caching expensive operations. end

铌:

看起来底层的 Ruby 问题将在 2.5.2 (ruby/ruby@b85b10c( 中修复。

鉴于该问题仅存在于 Ruby 版本 2.5.0 到 2.5.1 上,上述解决方法应该适用于所有受影响的版本,而忽略所有其他版本。(即它应该在所有配置中正常工作(

最新更新