在Google Apps Script中,当使用新的V8运行时,断点的工作方式是否有所不同?

问题描述 投票:2回答:1

使用旧的运行时,我可以在代码的任何地方设置断点。在新的V8运行时,断点显然必须在我从调试器运行的函数中。

这是预期的行为吗?我是在调试器中还是在我的代码中做错了什么?也许是结构不正确?

最小的例子。

var test1 = 1;
var test2 = 2;
var test3 = 3;

function myFunction() {
  var test4 = 4;
  var test5 = 5;
}

V8 RUNTIME:

我可以设置一个断点 var test4 = 4 然后使用调试器,选择 myFunction,代码就会在这一行中断。

但如果我把断点设置在 var test2 = 2 然后使用调试器,选择 myFunction但它并没有中断(用旧的运行时就会中断)。

debugging google-apps-script v8 google-apps-script-editor
1个回答
0
投票

这是一个与V8运行时有关的新行为。

当脚本在调试模式下运行时,当它遇到断点时就会暂停,断点是你在脚本中高亮显示的一行。

如果您的断点位于函数之外--在从未被调用的行中--您的断点将永远不会被击中。

  • 另一方面

其他人也注意到这种行为与之前不同,而且。归档 在谷歌的公共问题追踪器上

当谷歌调查无论是之前的行为还是当前的行为都是打算的行为,作为一种变通方法。

如果你想让你的调试器在行上停止的话 var test2 = 2; 其外 myFunction()你需要改变你的代码结构,例如:。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.