有没有一种方法可以用程序设置断点(例如,当调用命名函数时)

Is there a way set a break-point (eg. when named function is called) programatically?

本文关键字:例如 调用 函数 断点 程序 一种 方法 有没有 设置      更新时间:2023-09-26

我正在开发一些JavaScript-当然!-并且正在Chrome中进行一些调试。

现在,我想在调用一个函数(具有给定名称)时以编程方式启用断点

  1. 它的作用应该像一个断点。debugger关键字总是中断(uhg!),是一个很难看的工件,需要放入代码中或从代码中删除。

  2. 它不应该需要手动的源代码导航/交互。由于源代码是通过一个自动化的构建过程进行组合的,因此这将是一项耗时的工作。

理想情况下,它应该是简单的和程序控制的,例如

Debugger.setBreakpoint({onFunction: "Foo.prototype.bar"})

有没有一种方法可以在调用特定(命名)函数时设置断点,而无需手动导航当前加载的脚本?

如果没有按照程序的设想,有没有办法通过注释设置断点?(断点,而不是debugger-断点。)

(我可以在另一个浏览器中使用类似的开发工具,只要它在Windows上运行-但Chrome解决方案(如果存在的话)是理想的。)

在Chrome开发工具中,您可以使用debug(function)语句来调用函数并破坏函数内部。

如果您有精确的函数引用,还有一种方法
var func = function(){ if (arguments.callee._debug) { debugger; } }

_debug标志设置为true
func._debug = true

则功能CCD_ 8将停止。这很棘手,这对strict mode来说是行不通的。

不如写一个可以放置断点的函数:

function setBreakpoint (fn) {
    return function () {
       debugger;
       fn.apply(this, arguments)
    }
}

在你的控制台上,你可以覆盖你想打开的功能:

Foo.prototype.bar = setBreakpoint(Foo.prototype.bar);
相关文章: