3

每当我使用 byebug 删除调试断点时,我都会注意到与我键入的文本不一致。例如,我可以输入前 2-3 个字符。但是,在前 2-3 个字符之后,终端开始添加随机方括号和其他字符。例如,当我键入时env,Byebug 输出:eenv,或者当我尝试访问envByebug 中的键时,输出更糟糕的内容:^[[Aenv['QUERY_STRING'']^[[

有人遇到过Byebug这个问题吗?

4

2 回答 2

2

在使用多个工人在 ruby​​ on rails 中工作时,我也遇到了类似的问题。我在这里假设 OP 正在使用 rails,因为输出中提到了env查询字符串。

因此,如果您在调试时运行多个工作程序,它们可能会导致这种行为,因为在命中 byebug 断点后代码仍在执行,更重要的是:当您尝试在终端中键入字母时,导致输入获取错杂。调试中间件可能会加剧这种行为,因为中间件总是会受到影响,导致此问题仅在调试某些组件时发生,而不是在示例控制器中发生。

确保一次只有一名工作人员到达您的断点。这可以通过将您的开发环境设置为至少暂时不运行超过 1 个工作人员来完成

于 2019-02-07T14:29:41.543 回答
0

这是一个并行化问题。在运行 rails 服务器时有多个工作人员,或者在我的情况下是:

class ActiveSupport::TestCase
  # Run tests in parallel with specified workers
  parallelize(workers: :number_of_processors) # <--- this is a madness freaking root
end

在这种情况下,byebug(和任何基于 bb 的 gem)终端输入在遇到断点后会发疯

于 2021-10-21T10:46:27.987 回答