问题标签 [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 回答
153 浏览

ruby - 如何修复“无法构建 gem 原生扩展”。几个红宝石包?

我无法安装 ruby​​-debug-ide 和 byebug。

命令:

sudo gem install byebug

给我这个错误: 在此处输入图像描述

命令:

sudo gem install ruby-debug-ide

给我这个错误:

在此处输入图像描述 在此处输入图像描述

他们都给了我同样的错误:

“无法构建 gem 原生扩展。”

这两个问题是同一个问题的一部分还是不同的问题?


更新:

解决了我安装 byebug 的问题

ruby-debug-ide 仍然给我这个新错误:

在此处输入图像描述

0 投票
1 回答
174 浏览

ruby-on-rails - 我正在尝试在 Rails 上安装 ruby​​,但它告诉我我还没有安装 gem byebug 11.0.1 但我已经安装了?

我正在尝试在 Windows 7 机器上安装 Ruby on Rails。我按照http://installrails.com/上的说明进行操作。我试图运行服务器,它说要运行bundle install以安装缺少的turbolinksgem。我无法gem 'turbolinks <~> 5> x86 -mingw32'在您的 gemfile 中列出的任何 gem 源中找到或在这台机器上可用

我当然试过 bundle install 这是结果: administrative powershell

请注意,我必须安装较新版本的 Ruby,然后才能做到gem install byebug这一点,但这对我来说很奇怪,因为它说

确定gem install byebug succeeds

它成功了,但仍然无法正常工作:(。有什么建议吗?

编辑:在尝试 gem install bundler 和另一个 bundle install 之后,我现在得到你的 ruby​​ 版本是 2.5.5,但你指定的 gemfile 是 2.2.6?有人可以解决这个问题吗?

0 投票
0 回答
61 浏览

ruby-on-rails - 通过重定向标准输入和标准输出来调试由 webrick 生成的子 ruby​​ cgi 进程

问题:byebug 或 pry 输出通过 HTTP 而不是控制台返回。

我有一个webrick.rb脚本,它有一个 CGIHandler 安装了一个dispatch.fcgi脚本传递给它:

server.mount("/", WEBrick::HTTPServlet::CGIHandler, File.expand_path(File.dirname( FILE ))+"/dispatch.fcgi")

因此,webrick 通过 _do_GET_ 方法将每个 HTTP 请求传递给该脚本。

此方法使用 IO::popen 根据此代码片段生成一个子进程

/usr/local/rvm/rubies/ruby-2.2.10/lib/ruby/2.2.0/webrick/httpservlet /cgihandler.rb

当我在源代码文件中使用byebugbinding.pry时,它们的stdout会返回到父进程,然后由dispatch.fcgi脚本最终返回,从而通过 HTTP 返回。显然这是没用的,因为我无法与之交互。

为了解决这个问题,我的想法是让 byebug 使用不同的 IO 流而不是 stdout 和 stdin 或以其他方式将其重定向到 /dev/pts 下的不同文件描述符。然后,我可以编写一个小的 console.rb 脚本来与这些文件描述符/IO 流进行交互,这样我就可以与 byebug 或 pry 交互。

我是 ruby​​、byebug/pry 和 webrick 的新手,我的想法听起来很复杂。我真的不知道如何实现这一点(例如,我如何在操作系统中创建新的文件描述符),我相信肯定有一些比破解 byebug/pry gem 和弄乱操作系统更简单的方法?调试 CGI 的资源非常少。

0 投票
1 回答
778 浏览

byebug - “byebug”中的下一步和步骤之间的区别

“byebug”中的“step”和“next”有什么区别。什么时候应该使用一种而不是另一种?

0 投票
0 回答
36 浏览

ruby - ByeBug 太深了。在“下一步”进入 RubyCore 文件

我在 Ruby 程序中使用“byebug”。

当我“下一步”通过程序“ByeBug”时,它走得太深了,正在进入 ruby​​/core。

这是以前从未发生过的。有没有我可以调整的设置,所以 ByeBug 不会“下一步”进入 Ruby 源代码并留在程序中。

我通过以下调用调用 byebug。相同的结果

捆绑执行 rspec

rspec

红宝石文件名.rb

0 投票
1 回答
150 浏览

ruby - 将黑盒库添加到 Pry 调试

使用 Pry 时是否可以“黑盒”库?

我喜欢在遇到断点时遍历堆栈,但我真的不关心活动记录事务管理等。事实上,有时它甚至使遍历堆栈完全没用。

在 javascript 中,很容易将脚本添加到忽略列表中,并且它们只是在调试期间被跳过。有没有办法用 Pry 实现类似的行为?

其他细节

我所说的堆栈遍历的意思是使用“向上”移动到调用源代码行,该行将源代码标记移动到前一个堆栈帧。

我想忽略我自己的代码之外的帧,比如 ActiveRecord 和大多数第三方 gem。我不介意使用黑名单或白名单。

Bundle 给了我这些 gem 版本:

0 投票
1 回答
218 浏览

ruby-on-rails - 使用 Rails 运行 byebug 会话并且服务器超时时,如何恢复文本/光标?

我在 Ruby (2.6.2p47) 上有一个 Rails (5.2.2.1) 应用程序,Puma 作为本地开发服务器。

当我使用 Byebug 进行调试时,我发现当 Puma 线程超时并重置时,连续的 Byebug 会话不会显示我键入的命令的文本。

我的解决方案是重新启动 Rails 服务器,这可能需要一些时间。

不显示文本:

我输入时没有显示文本

这似乎是一个很常见的问题,但没有人在这里发布这个问题,所以我将它与一个适合我的解决方案一起添加:

0 投票
3 回答
539 浏览

ruby - 当命令执行一些错误时,为什么我的 pry-byebug 包会提供如此多的输出?

我最近安装了 gem pry-byebug,当我注意到它至少需要 Ruby 2.4 版才能运行时。所以我使用 更新了我的 Ruby rvm,然后安装了 gemsprypry-byebug. 一切正常。我开始编写一些代码并设置一些断点binding.pry

但是现在当我调试时,我必须处理来自pry-byebug.我的问题在哪里。

例如,假设我binding.pry在实例化一些对象的部分代码中设置了一个断点。

假设我开始查看对象casting_object1casting_object2确定它们的方法是否已正确编写,并且我不小心输入了一些小错误,例如调用不存在的对象/函数。我得到这种输出:

无论引发什么样的错误,我总是会得到这种似乎是在引用pryor pry-byebuggem 的代码库中的代码的输出。虽然这不是一个主要问题(因为我仍然可以设置断点并在 pry 中操作对象),但有太多多余的输出,以至于查明错误的过程变得不是特别容易或明确,尤其是在终端设置中。我自己尝试通过卸载并重新安装 gemspry和来修正这个问题pry-byebug,并且还尝试安装以前版本的pryandpry-byebug以使其正常工作。我试图用谷歌搜索这个问题,但遗憾的是,我对术语不够熟悉,无法确定问题的实质。

自从我用 rvm 更新了我的 Ruby,这个问题就一直在发生。我不想回到旧版本的 Ruby,因为我在代码中使用的一些 gem 需要最新版本。任何人都可以给我任何反馈来解释为什么会发生这种情况,并且可能,我该如何解决它?我正在使用 macOS Mojave v10.14.6,并使用 Ruby v2.7.0-preview1

更新

于是我去了 的 github 仓库,pry-byebug发现其他一些用户也遇到了和我一样的问题。

https://github.com/deivid-rodriguez/pry-byebug/issues/138

https://github.com/deivid-rodriguez/pry-byebug/issues/110

可悲的是,这两个问题仍未解决,但一位用户确实表示有一种方法可以使用该功能“猴子补丁”问题print_traceback。在 gem 的文件中定位到print_traceback函数后,我尝试实现这个猴子补丁。可悲的是,它对我不起作用。 where.rbbye-bug

0 投票
1 回答
88 浏览

ruby - 什么是 byebug 版本的 pry 的 whereami?

在 Ruby 中,我们有一个 gembyebug和一个 gem pry

pry中,您可以键入whereami以查看您在binding.pry会话中的位置。

你怎么做同样的事情byebug

0 投票
1 回答
162 浏览

ruby-on-rails - 在测试模式下没有来自 ActiveRecord 的 SQL 日志和 byebug

在我的测试环境中,Rails 6 中带有 ActiveRecord 的 Byebug 没有按预期记录。

当我运行测试并使用 byebug 暂停执行时,ActiveRecord 不会将查询记录到控制台。例如,如果我键入,Candidate.second我看不到 SQL 输出:

当我运行 Candidate.second 时没有显示输出

我想看到什么,如果我在 Rails 控制台的开发环境中运行相同的查询,我会看到什么:

在此处输入图像描述

我查看了有关 ActiveRecord 和 ByeBug 的文档,但似乎无法解决这个问题。任何帮助表示赞赏!

重现步骤

将调试器语句扔到控制器中,然后运行测试:

使用 byebug 时,ActiveRecord 不会将查询记录到控制台中。例如,如果运行一个命中控制器操作的测试:

从终端:

rails test test/controllers/jobs_controller.rb