Chrome devtools错误地暂停了被忽略脚本中的异常

zf9nrax1  于 2022-12-16  发布在  Go
关注(0)|答案(2)|浏览(214)

形象不言自明;此脚本在调试器的忽略列表中;然而每次我触发这个异常时,它都会暂停。我不能取消选中Pause on caught exceptions,因为我试图在另一个启动脚本中的捕获异常上暂停。
Devtools说The debugger will skip stepping through this script, and will not stop on exceptions,但它就是这么做的,它没有跳过这个脚本。
我试过几种方法,比如取消忽略/重新忽略,使用canary等等,我在windows和osx机器上都有这个问题;所以它似乎和我的环境没有特别的关系。
我想知道是否还有人遇到过这种情况,并找到了变通办法。谢谢。

kg7wmglp

kg7wmglp1#

问题仍然没有解决。离开这个职位在这里与我的一些不成功的tentistative,所以有人可以建立一些东西的基础上。

1.开发工具扩展API

可以创建一个可以访问Developer Tools窗口甚至Sources选项卡的附加组件,但一旦进入该选项卡,我所能做的就是创建新的侧面板或将侦听器附加到代码文本选择更改中:chrome.devtools.panels.sources.onSelectionChanged.addListener((x)=>{console.log("onselectionchanged");console.dir(x);});
这个API是不够的,不能达到调试状态或任何有趣的侧面板。

2.使用JS调试器调试调试器

通过在devtools调试窗口上点击ctrl-shift-ictrl-shift-j,可以打开另一个devtools调试窗口,调试第一个窗口,从那里可以编写代码来检测通知文件应该被忽略的横幅,然后点击继续按钮:

function breakpointskipper() {
    bnr = document.getElementById("sources-panel-sources-view").querySelector("div.vbox.flex-auto > div > div > div > div.flex-none > div");
    if (!bnr) return;
    bnr = bnr.shadowRoot;
    if (!bnr) return;
    bnr = bnr.querySelector("div");
    if (bnr.ariaLabel != "This script is blackboxed in the debugger") return;
    btn = document.querySelector("div.scripts-debug-toolbar.toolbar");
    if (!btn) return;
    btn = btn.shadowRoot;
    if (!btn) return;
    btn = btn.querySelector("div > button[aria-label=\"Resume script execution\"]");
    if (!btn) return;
    btn.click();
}

甚至可以将这个breakpontskipper()按钮按钮附加到devtools窗口中的某个事件并自动化操作,但是一旦关闭调试器正在调试窗口,一切就结束了,您必须重新创建代码并重新附加。如前所述,我无法使任何附加组件到达此处。

3.使用本机调试器调试调试器

最后一个可用的选项是使用GDB来调试DevTools并更改其行为,在chromium文档中显示它们有可用的调试符号,但我没有尝试这种方法。

8qgya5xd

8qgya5xd2#

请尝试疑难解答帮助,并分享一些反馈。如果您在此处粘贴一些脚本,也会有很大帮助。
  1. 1.请检查您的脚本是否像here一样被黑盒化
  2. 1.是否意外打开-断开所有异常请参见here x1c 0d1x
  3. 1.强制硬刷新,即像here一样清除缓存
  4. 1.关闭所有断点,然后执行恢复,重试。
    更多信息请参见chromium bug site
    更新1:请验证/仔细检查要忽略的文件是否为actually added to the ignore list
    如果你事先知道哪些文件可以忽略,那么就去Developer Tools > Settings (Cog Icon) > Ignore List,然后添加一个你想排除的文件名或正则表达式模式。
    您应该会看到类似于

相关问题