【问题标题】:Is it possible to manipulate the return value in the chrome debugger?是否可以在 chrome 调试器中操作返回值?
【发布时间】:2016-01-11 13:05:33
【问题描述】:

Google 的 Chrome 浏览器有一个很好的功能,可以在您退出该功能之前在调试器中显示返回值。它与WatchCall Stack 等一起显示在调试器窗格之一的Scope 列表中。It looks like this

我很好奇这个变量是否可以通过控制台访问?

我在调试时经常需要做这样的事情:

<return>.filter(function(z) { return z >= 0; })

或任何其他任意方式来了解返回值是否是我所期望的。不幸的是,我找不到在控制台中引用&lt;return&gt; 的方法。我希望有像$_ 这样的变量可以让我访问,但我没有在likely places 中找到外观。

我意识到我可以查看&lt;return&gt; 对象,因为它出现在Scope 列表中,但是如果该项目是大型数组或复杂对象等,我更愿意在暂停时在调试器中键入一些代码在断点处看看我是否得到了我期望的结果。

我通常采用的是修改我的代码以将返回值保存到变量中,然后重现步骤以返回断点,但这很烦人。

想法?

【问题讨论】:

  • 你想破解什么?
  • 暂停时在控制台中运行您的代码。此外,您还可以设置监视表达式。
  • 当您以某种方式console.log() 输出时,您可以右键单击控制台中的输出并将其存储为全局变量,从那里您可以访问数据并根据需要进行操作当然这是一个临时值,所以当你离开当前页面会话时它会消失
  • 单击Scope 列表中的返回值&lt;return&gt; 时,Store as Global Variable 菜单项不可用。所以,不幸的是,它不像console.log() 输出的变量那样工作。
  • @Malk,我的问题是我想写一行代码来引用在返回之前没有保存到变量中的返回值。例如,如果我有return new SomeClass();,并且我想查看在调试器中暂停时将返回的实例是什么样子,那么如果不戳@987654338 中的&lt;return&gt; 对象,我就无法做到这一点@menu 或通过修改我的代码以在返回之前保存对象然后重新运行代码以返回并查看它。

标签: javascript google-chrome debugging


【解决方案1】:

Store as Global Variable 现在可以在 google chrome 中使用,使用 Version 56.0.2924.87

因此,您在 Sources 选项卡中进入函数的右括号,然后右键单击 Return Value,然后选择 Store as Global Variable

控制台选项卡将显示类似

temp1 = ▶ MyClass {...}

从那里您可以像访问控制台中的任何其他变量一样访问 temp1。

【讨论】:

    猜你喜欢
    • 2018-07-07
    • 2011-06-03
    • 2016-01-14
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多