Программировать контрольные точки в Javascript?

Возможно ли в любом браузере использовать любой плагин для автоматического включения или отключения контрольных точек в коде?

Я уже знаю об установке условных точек останова, но мне действительно интересно установить их через код.

Ответ 1

Сначала вы можете добавить вызов функции, такой как __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 называется, будет вызывать отладчик, если переменная debugme является правдой.

Другим вариантом было бы создание системы построения javascript, которая вводит вызов после каждого объявления функции - для этого требуется синтаксический синтаксический анализатор, но если вы только хотите изменить функции, простой токенизатор для этого случая использования довольно прост в написании - но я оставлю это до вас.

Ответ 2

Вы можете использовать debugger; в коде, чтобы сделать контрольную точку для firebug. Например:

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

И firebug автоматически останавливается на этом ключевом слове.