首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript控制台的`binding.pry`?

javascript控制台的`binding.pry`?
EN

Stack Overflow用户
提问于 2013-06-14 04:19:40
回答 3查看 12.5K关注 0票数 27

在Ruby语言中,我可以在代码中的任何地方输入binding.pry,在执行时,我的控制台将进入一个REPL,在其中我可以访问所有本地变量,可以进行更改,并执行任何任意代码。

示例:

代码语言:javascript
复制
# foo.rb
require 'pry'
n = 5
binding.pry
puts "your number is #{n}"

当我运行它时:

代码语言:javascript
复制
$ ruby foo.rb

From: /Users/cgenco/Desktop/foo.rb @ line 4 :

    1: # foo.rb
    2: require 'pry'
    3: n = 5
 => 4: binding.pry
    5: puts "your  number is #{n}"

[1] pry(main)> n = 100
=> 100
[2] pry(main)> exit
your number is 100

这是一个令人难以置信的调试工具,特别是对于需要复杂设置的情况:我只需在需要更多代码的地方输入binding.pry,胡乱操作,找出需要编写的代码,然后将经过打磨的代码添加到实际的源代码中。

有没有像pry这样的工具可以在浏览器控制台上运行?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-14 04:27:30

尝试在您的代码中以this answer suggests的身份使用debugger;。您的浏览器开发工具必须处于打开状态。

票数 29
EN

Stack Overflow用户

发布于 2015-05-14 03:56:35

我想提一下,Node.js有一个很好的东西叫做调试器。

超短篇教程:

  1. 将像这样运行您的应用程序:

node debug appname.js

  1. 而不是通常的

node appname.js

请看:https://nodejs.org/api/debugger.html我之所以发布这篇文章,是因为在我找到调试器工具之前,我发现了很多需要依赖的方法!

票数 4
EN

Stack Overflow用户

发布于 2022-01-10 20:26:15

问了这个问题大约9年后,我偶然发现了我正在寻找的东西:pryjs

将其包含在import pry from "pryjs"const pryjs = require("pryjs")中,然后使用eval(pry.it)而不是binding.pry调用它。

它的工作方式与您预期的一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17096263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档