避免在 Chrome 开发者工具中单步执行 javascript 文件?

Posted

技术标签:

【中文标题】避免在 Chrome 开发者工具中单步执行 javascript 文件?【英文标题】:Avoid stepping through javascript file in Chrome Developer Tools? 【发布时间】:2011-12-11 06:56:46 【问题描述】:

我想知道,有没有办法从 Chrome 开发者工具调试器中省略一个 javascript 文件,所以它会自动跳过对该脚本进行的任何函数调用?

我问是因为我的项目通常包含大型库,例如 jQuery。当我在调试时单步执行 Chrome 开发人员工具中的 javascript 时,每次在我的脚本中进行 jQuery 调用时,我都必须单步执行 jQuery 的库。

我最终不得不在每次调用 jQuery 对象后设置断点一行。这是我发现跳过过去的唯一方法,而且非常烦人。

【问题讨论】:

“越过”和“退出”按钮是否因某种原因不起作用? 它们确实有效,但有时它会跳回 jQuery 脚本。我想我希望它像 Visual Studio 调试器一样工作。 @DmitryBeransky 那是不同的——不是单步执行 F10/F11,而是要注意被调用的方法并过滤掉 jQuery(例如)。我相信问题是,是否有某种配置选项可以告诉调试器自动跳过某些文件,即使按下 F11 并且答案是否定的。 @ZenMaster 这是真的。这样的功能要求太多了吗?也许我要求太多了;) 我喜欢这个功能:允许在调试时忽略某些 JavaScript 文件。例如,不要在此文件上暂停 【参考方案1】:

更新 2 在最新版本的 chrome 中,此功能的用户流程有所改进。请参考https://developer.chrome.com/devtools/docs/blackboxing

更新 1 从 Chrome 版本 38 开始,您不再需要启用开发者工具实验。

以下详情仅供历史参考

现在可以在 chrome 版本 30+ 中实现。

    chrome://flags/#enable-devtools-experiments 启用“启用开发人员工具实验”。 (是的,您需要在输入 URL 的位置输入) 重新启动 chrome 点击 Chrome 开发者工具中的设置图标 转到实验部分。注意警告 ;) 然后勾选Enable frameworks debugging support。 (你也可以试试Show step-in candidates while debugging) 现在,关闭 Chrome 开发工具并再次打开它。 点击 Chrome 开发者工具中的设置图标 在一般部分中,您会发现“跳过具有特定名称的源”。勾选并提供 regex 用于您想要跳过的 javascript 文件名。

来源:Tips and Tricks: Ignoring library code while debugging in Chrome

【讨论】:

我在 ubuntu 的 chrome 33.0 上没有这个能力。有谁知道我如何启用它? 我找到了 chrome://flags/#enable-devtools-experiments 并启用了它,但是在重新启动/重新加载 chrome 并进入开发工具设置后,我绝对没有“跳过源代码具有特定名称”选项。它不在那里。请帮忙。我有这个版本的 Chrome:33.0.1750.154 希望你没有错过第四步? 我找不到Show step-in candidates while debugging 选项。 答案on this page指出如何为那些找不到上述选项的人做。【参考方案2】:

iSid 我想指出的是,从 Chrome 38 开始,您不再需要启用 devtools 实验。相反,如果您直接进入 F12 开发人员工具 -> 设置 -> 常规 -> 源代码,您将看到其中的最后一项是管理框架黑盒。好的部分是您可以在自己的行上设置每个框架,或者您可以将通用的捕获所有模式组合在一起,例如 (firebug|angular|knockout|jquery|bootstrap|modernizr|respond)

【讨论】:

这应该是对您正在回复的答案的评论。【参考方案3】:

51 版的情况略有不同。

按 F12,然后按 F1。从左侧菜单中选择“黑盒”。

【讨论】:

【参考方案4】:

在 Chrome v68 下,在 .js 文件上调试时,使用左键单击黑盒脚本:

https://developer.chrome.com/devtools/docs/blackboxing

【讨论】:

【参考方案5】:

“Step Out”按钮可用于快速让您退出 JQuery 代码。

【讨论】:

这只是解决方案的一半,因为当 jQuery 调用我传递的回调(例如事件处理程序)时它不会暂停,这通常是我试图追踪的那种事情。 当我发现自己在一个 jquery lib 文件中时,Step Out 基本上是没有用的——step out 经常让我一直到整个脚本的最后,而不是让我回到 jquery lib 之后的行已输入。 停止投票,因为现在有更好的解决方案,在问题发布 4 年后。 这并没有回答问题,也不是真的,我们仍然需要多次点击“退出”。还取决于 jQuery 为您做什么。 那是当时(5 年前)唯一的选择。

以上是关于避免在 Chrome 开发者工具中单步执行 javascript 文件?的主要内容,如果未能解决你的问题,请参考以下文章

在 chrome 开发工具中调试导入的 Angular 库

mac下chrome单步调试的快捷键是什么啊6¥86¥8

如何在 Visual Studio 或 CLion 调试器中单步执行 ispc 源文件?

从路径获取 UIImage 仅在调试器中单步执行时有效

怎么在chrome调试工具直接修改js代码?

使用 Chrome 开发者工具编辑 Javascript