debugging debug gem的binding.break创建断点,但没有控制台提示符

z2acfund  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(114)

我有一个使用gem "debug", platforms: %i[ mri mingw x64_mingw ]进行调试的Rails 7应用程序,我还在Windows 11上使用WSL 2和Windows终端作为我的开发环境,以防这是我将要描述的问题的一部分。
如果我尝试在我的应用程序中设置一个binding.break,断点,它会正确地中断,但不会给予我一个控制台提示符。我不确定是否有什么我没有做的事情,因为这个gem对我来说是新的。我从我的Puma输出中附加了一个示例输出。

**更新:**还应注意,当在我的测试中使用此功能时,它确实按预期工作。
**另一个更新:**我注意到,如果我使用rails s启动服务器,断点工作,但当我使用bin/dev时,断点不工作。
**另一个更新:**这里是bin/dev文件的内容。

#!/usr/bin/env bash

if ! command -v foreman &> /dev/null
then
  echo "Installing foreman..."
  gem install foreman
fi

foreman start -f Procfile.dev

ibrsph3r

ibrsph3r1#

foreman不会告诉它的子进程它们正在一个交互式终端上运行。
当你做测试的时候,它不是通过福尔曼运行的。
当你用rails s运行服务器时,它并不是通过foreman运行的。
在这两种情况下,您的应用知道它有一个交互式终端,并同步输入和输出。
由于您是在WSL2下运行的,因此应该能够运行overmind,它似乎处理事情的方式有所不同(或者直接在不同的控制台中运行procfile中的服务,然后运行rails s)。

相关问题