问题标签 [byebug]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4368 浏览

ruby-on-rails - 如何将 Byebug 与 Sidekiq 和 Foreman 一起使用

我有一个 rails 应用程序,我在其中使用 foreman 来启动我的 rails 和 sidekiq 服务器。由于工头与常规的 byebug 交互不佳(您在键入时看不到提示),因此我已经为我的 rails 和 sidekiq 服务器设置了远程调试。这对于 rails 服务器非常有效,但是当我连接到 sidekiq 服务器的 byebug 服务器时,我得到以下信息:

而且我无法捕获任何 byebug 断点。

根据文档,(byebug:ctrl)提示意味着程序已经正常终止(https://github.com/deivid-rodriguez/byebug/blob/master/GUIDE.md),但是sidekiq正在运行作业就好了.

我的配置有什么不正确的地方,还是 sidekiq 与 byebug 的远程调试不兼容?

档案:

配置/初始化程序/byebug.rb:

请注意,当我不使用远程调试时,sidekiq 的 byebug 功能正常(尽管在工头中我在键入时看不到提示)。

另请注意,我之前尝试过使用Byebug.wait_connection = trueByebug.start_server但我遇到了同样的问题。

0 投票
1 回答
2427 浏览

ruby - 调试工头使用 byebug 启动应用程序。远程调试连接但没有提示

我有工头启动多个应用程序。我已经设置了带有端口的 byebug 服务器

我开始服务

我看到终端报告的服务启动和端口号:

我用远程选项启动了 byebug,我得到的只是:

这就是我的问题。“连接的。” 但没有 byebug 提示。此外,我所追求的断点似乎触发了,但 byebyg 远程调试仅此而已。

想法?任何人?因为我到处搜索,似乎没有人遇到类似的问题。

我的系统参数:

  • OS X 埃尔卡皮坦 10.11.2
  • 红宝石 2.2.3
  • 导轨 4.1.14
  • byebug 8.2.1
  • 工头 0.78.0
0 投票
1 回答
183 浏览

ruby-on-rails-4 - 在 Byebug 中记录过滤参数

我想知道如果我打印出过滤参数的值会发生什么byebug。会是[FILTER]orthe actual value还是empty string.

例如密码和信用卡字段

我得到空字符串,所以我不确定该值是否存在。

0 投票
1 回答
324 浏览

ruby-on-rails - 在 Rails 的集成测试中失败

我正在开发 Rails 教程(M. Hartl)的示例项目,但在第 9 章结束时,我的集成测试失败了。

测试断言如下:

错误主体是:

因此使用 byebug 进行测试调试,但没有发现任何问题。服务器对测试模块的响应如下(“ JSON.parse(response.body) ”的结果):

观看“ p user ”的反应是:

更新:

集成测试是:

0 投票
2 回答
239 浏览

ruby-on-rails - 调试器导致内部服务器错误

我不能再放置debugger在我的控制器方法中。我用 Chrome 的 Postman 测试 API 调用。方法都可以工作,但是如果我包含debugger在一个方法中(不管是哪个方法,也不管我debugger在方法中的位置)并使用 Postman 调用该方法,我会收到错误消息。以前从来都不是问题。有人可以帮忙找出原因吗?

0 投票
2 回答
1540 浏览

ruby-on-rails - 有什么方法可以在乘客 + nginx 下运行 byebug?

我开发了一个简单的 Rails 应用程序,它在 WEBrick 下的开发环境中工作。但是,当我转移到生产环境时,它不起作用。我修复了与资产和事物有关的琐碎错误。然而,有些事情是行不通的。能够通过调试器以交互方式查看正在发生的事情将非常有帮助。

我可以插入byebug代码,它会暂停代码运行,但由于乘客Nginx都没有都没有记录到 STDOUT(默认情况下),我无法进入 byebug 提示符。(并且既不阅读标准输入)

有没有办法byebug乘客 + nginx下运行?

编辑

这次我的问题https有关。

0 投票
1 回答
254 浏览

ruby-on-rails - 在生产中包含 Ruby IRB shell gem 对性能有何影响?(即 Pry / Byebug / awesome_print ...)

在 Rails 项目中,通常会看到 shell 增强 gem 仅包含在 Gemfile 的development/test部分中——大概是因为如果将这些 gem 包含在生产 Gemfile 中,则会影响性能或内存。

然而,因为我在 Heroku 上的 Rails 生产服务器上做了很多工作,所以我想美化我的外壳,以便它可以更多地模仿开发(例如通过包含像pry和/或byebug,或这样的宝石awesome_print)。但是,如果我知道它会显着减慢我的应用程序的速度,我无法证明将它们添加到生产中是合理的。

那么byebug,在 Rails 生产环境中包含 shell 增强 gem 对性能有何影响?即使我没有打开生产服务器外壳,它们是否会影响我的单个 dyno 生产 Rails 服务器的性能?是内存命中问题,还是即使我没有打开外壳,这些宝石也会影响我的服务器速度?pryawesome_print

0 投票
1 回答
372 浏览

ruby - Ruby Pry 安装给出了奇怪的结果?

我的工作站:

我对此进行了研究,发现pry-nav 出乎意料地工作——但根据该问题重新安装并没有解决我的问题。

问题——我最近使用 Brightbox Cloud ppa 资源在系统范围内安装了 Ruby 2.2 和 2.3,例如:

然后安装 Pry gem 和相关依赖项:

结果是:

还需要稍微打开文件访问权限:

我以前让 Pry 使用 Ruby 1.9 和 2.1 在较旧的 RVM 钻机上工作,并且在那里工作得很好,但我显然已经“失去了安装 Pry 的公式”,或者有些东西发生了微妙的变化(?)。哦,没有 Rails 让事情变得复杂,只是简单的 Ruby 脚本。

当我运行看起来像这样的脚本代码时(并且与 RVM 钻机和私人安装的 gem 配合得很好):

当然,期望 Pry-Byebug 将在 binding.pry 方法调用之后的行处断点。而是显示以下断点 (?):

那么,这里发生了什么?为什么 Pry 在 .../pry-nav/tracer.rb 的运行模块中的第 21 行中断?

必须如何安装 Pry 和 Byebug 才能生成一组可用的 Gem?

我保证会仔细记录这个答案,这样我以后就不会再丢失它了!TIA。

补充——发布这个问题后,我做了更多的挖掘,发现了这个:

https://plus.google.com/114275173749981855325/posts

这表明应该只安装 pry 和 pry-nav,而不是 pry-byebug。所以,我卸载了 pry-byebug 和 ta-da!撬调试再次开始正常工作。

我很抱歉问了这么长的问题,只是用这么简单的解决方案自己回答。希望你们都能让这篇文章继续存在,作为对未来“如何安装 Pry”的改进。现有的关于 pry 安装的“权威”文档是模棱两可和不准确的(或者可能只是没有解决这个潜在的问题)。

谢谢您,再次对给您带来的麻烦和困惑表示歉意。

0 投票
3 回答
9149 浏览

ruby - 如何在 Byebug 中继续没有断点

使用byebuggem 使我能够continue直到下一个断点:

我看了一遍,找不到“继续没有断点”的方法。我能想到的唯一方法是删除或注释byebug语句,退出q!并重新启动测试。

如何在不停留byebug在 Ruby 中的其他语句的情况下继续?

0 投票
3 回答
3143 浏览

ruby-on-rails - 从生产 irb 调试到方法

当我寻找问题时,例如使用特定的 ActiveRecord 对象时,我经常发现自己在生产系统上执行以下操作:

有时我无法重现,为什么该行article.do_something(3)会抛出错误,所以我想直接在我的服务器上以生产模式调试它。

现在的问题是:如何使用对象/实例上#do_something的参数进入方法?3article

当然,可以在该方法中设置断点,重新加载生产并让所有客户在该断点上等待,直到我完成调试......但这不是最好的主意。

那么,有没有办法从正在运行的 irb / pry 会话中调试到特定实例的方法?(两者都可以)