Apps 脚本调试器不允许我查看对象中的值(包括数组和块范围)

Mic*_*ith 9 debugging google-apps-script google-apps-script-editor

我正在尝试调试 Apps 脚本项目,在过去的 2-3 天里,调试器没有让我查看在范围级别定义的变量。

例如,我试图调试这段代码。

/**
 * Deletes all rows in a sheet, excluding header rows. Just calling sheet.deleteRows() 
 * for a massive range of rows will throw out an error.
 * @private
 * 
 * @param {Sheet} sheet 
 * @param {number = 0} numHeaderRows 
 * @param {number = 500} deletionSize - The number of rows to delete at a time
 */
function deleteAllNonHeaderRows_(sheet, numHeaderRows = 0, deletionSize = 500) {
  const startingNumberOfRows = sheet.getMaxRows();
  for (let numRows = startingNumberOfRows; numRows > numHeaderRows; numRows -= deletionSize) {
    if (numRows < deletionSize) {
      const deletionArgs = [numHeaderRows + 1, sheet.getLastRow() - numHeaderRows]
      sheet.deleteRows(...deletionArgs);
    } else {
      sheet.deleteRows(numRows - deletionSize, deletionSize);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

它通常会是一个很快的过程,但因为我不能看着的论点,我试图通过进入价值sheet.deleteRows(),我花了一点时间来告诉我应该使用sheet.getMaxRows()代替sheet.getLastRow()。使用调试器会弹出一个列出所有范围的菜单,但尝试扩展块范围并没有任何作用。经过一些修补,我发现这个问题扩展到了作为对象实现的所有东西,所以也包括数组。扩展本地范围有效,但如果那里有任何类型的对象,我无法扩展它。

图片链接,因为这是我的第一篇文章,我还不能嵌入

我不确定是什么导致了这个问题。我在 Edge 中编码,但切换到 Chrome 并没有改变任何东西(可能是因为它们都是基于 Chromium 的)。我还尝试禁用所有广告拦截器和隐私保护器。查找其他人遇到的问题也没有找到任何最近的帖子。有什么可以做的吗?我也偶尔会收到诸如“无法连接到服务器”之类的错误消息。但是脚本本身运行良好,无论它们是在容器绑定文件中还是在编辑器本身中运行。

dwm*_*rin 9

编辑:

此 V8 调试问题已由 Google 修复。

(截至2020年9月1日)

原答案:

V8 调试当前遇到错误

(截至 2020 年 7 月 23 日)

使用调试器会导致 UI 无响应(报告各不相同)、服务器响应409、断点挂起执行。如果您遇到类似行为,请在下面链接的问题上加星标。

链接到 Google 的 IssueTracker 中的问题:“调试模式在 V8 中没有响应”