问题标签 [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.
ruby - Set conditional breakpoint with pry-byebug
Given the following code:
I'd like to "loop until i == 5
then break" while inside pry-byebug
. From running it help break
it seems like you can identify breakpoints by "breakpoint #" or "line #". It also seems like you can use conditions, however I'm not getting it to work:
Trying to set breakpoint on line #:
First setting breakpoint then putting condition on break point:
As you can see, in both cases pry-byebug
doesn't respect the condition because it stops too soon. How do I get it to work?
ruby - Byebug 是否完全支持 Windows?
我的环境是 macOS,我没有 Windows 环境。我正在写一篇关于 Byebug 的博客文章,我想知道它是否完全支持 Windows。这是我得到的信息:
可能行不通?
- Rails 5
platform: :mri
为 byebug gem 添加了选项。(见这里) - 这份文件说mri 不包括 Windows。
- 我听说有些人说某些命令(例如
restart
)在他们的 Windows PC 中不起作用。 - 那么Byebug不支持Windows?
可能有用吗?
- CI 测试正在通过 Windows 环境。(见这里)
- 而且我在Byebug 的 README中找不到对 Windows 环境的任何限制。
- 那么Byebug 支持Windows 吗?
我不确定哪个想法是正确的。有人知道吗?
更新
@deivid 说 Byebug 支持 Windows。那么,Gemfile 的有效平台选项是什么?
:platforms => [:mri, :mingw, :x64_mingw]
还是:platforms => [:mri, :mswin]
?
以下是从该页面中提取的选项。
- ruby => C Ruby (MRI) 或 Rubinius,但不是 Windows
- mri => 与 ruby 相同,但不是 Rubinius
- rbx => 与 ruby 相同,但只有 Rubinius(不是 MRI)
- jruby => JRuby
- mswin => 窗口
- mingw => Windows 32 位“mingw32”平台(又名 RubyInstaller)
- x64_mingw => Windows 64 位“mingw32”平台(又名 RubyInstaller x64)
在此评论中:
mswin 和 mingw 是完全不同的东西。
而 mswin 似乎是这些软件包:
https://www.artonx.org/data/asr/
而且 Byebug CI 仅针对 mingw 和 x64_mingw 运行,所以我想它应该是:platforms => [:mri, :mingw, :x64_mingw]
,对吗?
ruby - 如何在 Ruby Pry 中查看变量?
我正在使用 Ruby 2.2.2、Pry 和“pry-byebug”。该continue
语句删除 have in 中的所有监视变量pry-byebug
:
每次都失去它们continue
会使观看的表情变得毫无价值。如果我改为使用next
并单步执行代码中的同一点,则被监视的表达式仍然存在;这只是continue
导致问题的原因。目前我什至找不到关于该watch
声明的任何文档,所以我不知道为什么会发生这种情况。
更一般地说,我只想在每个 Pry 提示符上打印出一组表达式的值(或者,如果它们自上次打印以来发生了变化,则打印出来。)我如何在 Ruby 中实现这一点调试器?
ruby-on-rails - 在 byebug 中进行 Rails 多行调试或如何在单行中进行救援
有时我需要调试一些隐藏或截断回溯的令人讨厌的异常,比如ArgumentError
没有任何堆栈跟踪。
我习惯用 byebug 调试。问题是 byebug 解释器是一个 REPL,所以不可能编写多行代码。我试图弄清楚如何进行内联救援并从那里打印回溯,即我想要一个内联、REPL 兼容的版本
我努力了
但是该行引发了 SyntaxError
我不确定我错过了什么?
编辑
上面的行在常规 IRB/Rails shell 上工作正常,但在 byebug shell 上不行
内陆税收局
堆栈跟踪显示成功
再见虫
ruby-on-rails - byebug:中断输出到控制台
我有一些代码(Rails 应用程序)可以生成输出到控制台。
我想使用 byebug 来获取生成该输出的任何位置。
有没有办法做到这一点?
ruby - 为什么 Ruby 调试器在运行时返回的值与代码不同?
查看这个简单的 Ruby 类:
运行此类时,可以在调试器的控制台中观察到以下行为:
在断点处,调试器返回以下值:
请注意 - 尽管调试器的断点是在线的#5
- 它已经知道bar
在线定义的局部变量#10
将隐藏该方法bar
,并且调试器实际上无法再调用该bar
方法。目前不知道的是该字符串'local string'
将被分配给bar
. 调试器返回nil
.bar
让我们继续 Ruby 文件中的原始代码并查看其输出:
在运行时,#7
Ruby 仍然知道这bar
确实是一个方法,并且它仍然能够在 line 中调用它#8
。然后 line#10
实际上定义了隐藏具有相同名称的方法的局部变量,并且 tTherefore Ruby 像预期的那样返回 line#12
和#13
。
问题:为什么调试器返回的值与原始代码不同?它似乎能够展望未来。这被认为是功能还是错误?这种行为是否记录在案?
ruby-on-rails - 类似于 coffescript 的 gem byebug
是否有任何类似于ruby gem byebug
for coffescript的工具?
我希望能够停止 JS 代码并检查变量的值/状态(例如数据等)
ruby - 调用堆栈“围绕”红宝石代码
我有一行带有重载方法的 Ruby 代码。我想显示该行的调用堆栈。我不知道caller
or的位置byebug
。我想在执行后显示该行的当前调用堆栈并找到调试的地方。我该怎么做?
大约像caller Test.method
,然后:
ruby-on-rails - 通过 docker-compose 使用远程 byebug 实例
有没有办法设置 Rails 服务器,以便您可以连接远程 byebug 服务器并轻松调试?我过去通过设置 byebug 然后在 0.0.0.0 上启用 Rails 绑定并设置 VIRTUAL_PORT=3000 来完成此操作,但我想知道是否还有其他更简单的方法来调试已经运行的容器。我查看了https://docs.docker.com/engine/reference/commandline/attach/但无法正确设置它。