如何检查Chromedebugging器中的JavaScript函数返回值?

来自gdb,它将完成时打印一个函数的返回值。 有没有一种方法可以从Chromedebugging器获取这些信息,而无需更改正在debugging的源代码?

2013年11月5日实施了一个修复程序 ,但显然只是在Chrome Canary上发布的时候才发布。 (我在33.0.1719.0中看到它,但在Chrome Beta版本32.0.1700.19testing版中没有看到它。)

如果您正在运行的版本确实具有该版本,那么当您逐句通过return语句时,debugging器的Scope Variables本地作用域将包含一个带有该值的<return>条目。

(我需要使用Canary来进行主debugging,但是没有注意到<return>条目的存在,直到在问题中看到引用的通知 !)

不,目前没有办法。

不过,有一个公开的增强请求 。 它被分配,而且在撰写本文时,它正在等待这个V8增强 。

我的Chrome版本是41.0.2272.118米。 这里有一个很好的理由,你应该把复杂的return语句放在一个单独的行上。 如果在返回后的任何一行上添加断点,则Chrome将在源面板的“范围variables”窗格的“本地”节点下添加(在此示例中)“<return>:true”击中。

 function bar() { return true; } (function foo() { return bar(); })(); // Place breakpoint here 

如果你设置了一个断点,你可以将鼠标hover在variables上,它会显示这些值是什么 – 这是否适用于你想要做的事情?

也许这会做?

1.)查看页面源代码。

2.)查找函数定义并将其复制到剪贴板。

3.)修改剪贴板上的函数定义以logging它即将返回的值。 (即, console.log(x); return x;

4.)将修补后的函数定义粘贴到控制台中并运行。 这将覆盖现有的function。

5.)触发function。

在Chrome中仍然无法使用,但是在Firefox 24 +中可以使用。 您需要从函数中跳出(Shift + F11),它将显示返回值或函数范围中抛出的exception。

我正在使用Chrome版本57.0.2987.98testing版(64位),它在那里,真的很高兴有。 这里有一个截图:

在这里输入图像说明