以编程方式控制Javascript中的断点?

是否可以在任何浏览器中使用任何插件来以编程方式启用或禁用代码中的断点?

我已经知道设置条件断点,但我真的很感兴趣通过代码设置它们。


首先,你可以添加一个函数调用__checkDebug(); 它将检查一个全局变量(或半全局变量),当所述变量为真时,调用调试器。

  
function __checkDebug() {
   if (debugme) debugger;
}

你关心调试的所有功能都是这样的:

  
function foo() {
   __checkDebug();

   //.... whatever foo was gonna do.
}

然后,您可以稍微进一步,在代码执行时动态修饰函数,如下所示:


Function.prototype.debug = function(){   
   var fn = this; 
   return function(){     
       if (debugme) debugger; 
       return fn.apply(this, arguments);     
   }; 
}; 

foo = foo.debug();  

现在任何时候foo被调用,如果调试变量真实,它将调用调试器。

另一个选择是构建一个JavaScript构建系统,在每个函数声明后注入调用 - 这需要一个语法分析器,但如果您只想修改函数,那么该用例的简单分词器很容易编写 - 但是,我会留给你的。


你可以使用debugger; 在代码中为萤火虫制作断点。 例如:

alert('1');
debugger;
alert('2');

而萤火虫会自动停在这个关键字上。


查看FireBug函数调试(fn)和undebug(fn)名称,它们在命名函数的第一行设置断点。

见第6点:

http://michaelsync.net/2007/09/30/firebug-tutorial-script-tab-javascript-debugging

链接地址: http://www.djcxy.com/p/96475.html

上一篇: Programmatically control breakpoints in Javascript?

下一篇: Set a breakpoint in XHR in Chrome