问题标签 [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.
javascript - Node.js 调试流程
我想像 rails 一样调试 node.js。我尝试了几种方法:
- Webstorm 调试 - 在这种情况下,我需要在每次更改代码后单击“重新运行调试”
- 带有 chrome 远程调试器的 Nodemon - 在这种情况下,我需要在 nodemon 重新加载代码后每次重新连接到调试器
- pry.js——在这里我需要输入“eval(pry.it)”——并且没有选项让它更简单,比如“debug”或 pry()
那么调试像 byebug for rails 这样的节点应用程序的最佳选择是什么?
升级:
感谢@AbhinavD 我已经设法在 VSCode 中做到了:首先你需要编辑 app/.vscode/launch.js
javascript
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Node: Nodemon",
"processId": "${command:PickProcess}",
"restart": true,
"protocol": "inspector",
},
]
}
所以现在 nodemon 在更改后重新启动服务器并且 VSCode 自动重新连接到调试器。
见视频https://vimeo.com/267975071
有人可以在 WebStorm 中做到这一点吗?
ruby-on-rails - Rails 调试器在一段时间后自动退出,并且 Ubuntu 终端选项卡挂起
我正在使用 byebug 调试我的 rails 应用程序。调试器停止但在一段时间后自动继续并给出:
[5188]!终止超时工作人员:5378
- 工人 0 (pid: 5959) 已启动,阶段:0
有时它也会使终端挂起。请帮忙!
ruby-on-rails - byebug 在我输入时没有显示输出
我遇到了一个奇怪的界面故障。
当我键入时,字符根本不显示。我可以输入p "yo"
或任何我想要的,当我点击enter
它时运行代码。基本上我可以在紧要关头使用 byebug,但是当我看不到我正在输入的内容时,这真的很令人沮丧。
我过去曾在同一台笔记本电脑上使用过 byebug,这个问题是最近才出现的。
我正在协助一位朋友,当他使用 byebug 时,发生了同样的问题。我一直无法在网上找到任何东西。
ruby - Byebug 不更新 Ubuntu 上的局部变量
这是我的代码:
在 byebug 会话中,我设置了 的值a
,但它仍未定义:
我正在运行 Ubuntu 18.04
ruby - 在红宝石中,我无法让 byebug 与硒一起工作
当我运行程序时,它直接进入driver = Selenium::WebDriver.for:chrome
我点击“n”,然后它加载 Chrome,然后转到谷歌并将这些键发送到输入框并退出程序。
我想要发生的是,我按了“n”它会转到driver.navigate.to "http://google.com"
. 我又按了'n',它变成了 puts driver.find_element(:tag_name, 'input');
。而且我想从控制台运行诸如 driver.find_element.... 之类的命令。但我不能,因为 byebug 没有在该driver = Selenium::WebDriver.for:chrome
行之后跟踪程序。
我希望能够从控制台 / irb / byebug 用 Selenium 检查 DOM
添加
评论建议使用 pry
所以我尝试了require 'pry'
和binding.pry
。和'next'而不是'n'(因为pry使用'next')。同样的问题。
我尝试了require 'pry-byebug'
和'binding.pry'
'next'而不是'n'(因为pry-byebug使用'next')。也是同样的问题。
根据 rs 的建议,我尝试了require 'pry'
和require 'pry-byebug'
binding.pry(停止)。并尝试step
了而不是next
. 另外,同样的问题。我现在已经添加了这个的输出。
进一步添加
ruby - 无法构建 byebug 原生 gem 扩展
我真的到处找,找不到答案。我使用他们在其网站上提供的安装程序在我的 Windows 上安装了 ruby。是的,我在 64 位上运行它,这就是我的 devkit 所用的。我该怎么办,我真的很期待每个人,请帮助!
ruby - 使用 ruby byebug 进行 Firendly 回溯(where 命令)
我曾经byebug
知道特定呼叫的来源,但是当我使用时,where
我得到了完整的回溯。
有没有办法过滤where
命令以仅显示我的代码?
例如,这是一个典型的where
结果,它显示 127 行,但我想轻松查看 #0、#1、#64 和 #74 行,因为只有这些行是我的“代码调用”
谢谢
ruby - 如何使用 Ruby 调试动态定义的方法?(在 repl 会话中创建的方法)
是否可以在 Ruby 中调试动态定义的方法?如果是这样,我该如何实现?
所以我打开了一个新的 Pry 会话并首先尝试这样:
它用“*** No sourcefile available for (pry)”对我大喊。我仍然能够单步执行代码,但我看不到源代码。
然后我尝试这样做:
而现在情况正好相反:我可以看到源代码,但我无法单步执行代码(当我输入“step”时,它会用“NameError: undefined local variable or method `step' for主要:对象”)。看起来 Pry 实际上确实有所需的源代码,但不幸的是调试器无法工作:(
我设法使用 IPython 在 Python repl 中完成了它(虽然它在标准 Python repl 中不起作用):
我希望能够在 Ruby 中实现同样的目标
ruby-on-rails - 在 byebug 的 rails 中,如何将会话变量的输出视为字符串,只显示其中的一部分?
在 byebug 的 rails 中,如何将会话变量的输出视为字符串,只显示其中的一部分?
我可以从控制台查看会话变量的输出,但它真的很长。如果我可以把它放在一个字符串中并执行例如 thestr[1,100] 。那么就可以了。但我看不出如何将它变成一个字符串。
如您所见,会话的响应非常长。而且我看不到如何仅显示前 100 个字符。例如 thestr[0,100]
(byebug) 会话
@app=#>, @cache_control="max-age=0, private, must-revalidate", @no_cache_control="no-cache">>>>, @default_options={:path=>"/", :domain =>nil, :expire_after=>nil, :secure=>false, :httponly=>true, :defer=>false, :renew=>false}, @key="_sessiontest1_session", @cookie_only=true>, @req =#[1, 3], "rack.errors"=>#>, "rack.multithread"=>true, "rack.multiprocess"=>false, "rack.run_once"=>false, "SCRIPT_NAME"=> "", "QUERY_STRING"=>"", "SERVER_PROTOCOL"=>"HTTP/1.1", "SERVER_SOFTWARE"=>"puma 3.12.1 穿着睡衣的骆驼", "GATEWAY_INTERFACE"=>"CGI/1.2", "REQUEST_METHOD "=>"获取","REQUEST_PATH"=>"/", "REQUEST_URI"=>"/", "HTTP_VERSION"=>"HTTP/1.1", "HTTP_HO .......... ……
我尝试了 session.to_s 但这使得这个字符串不只是将上面的输出转换为字符串。
ruby-on-rails - byebug:不确认退出
有没有办法配置byebug以便在发出命令时在退出之前不要求确认?quit