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