Возможно ли в любом браузере использовать любой плагин для автоматического включения или отключения контрольных точек в коде?
Я уже знаю об установке условных точек останова, но мне действительно интересно установить их через код.
Возможно ли в любом браузере использовать любой плагин для автоматического включения или отключения контрольных точек в коде?
Я уже знаю об установке условных точек останова, но мне действительно интересно установить их через код.
Сначала вы можете добавить вызов функции, такой как __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, которая вводит вызов после каждого объявления функции - для этого требуется синтаксический синтаксический анализатор, но если вы только хотите изменить функции, простой токенизатор для этого случая использования довольно прост в написании - но я оставлю это до вас.
Вы можете использовать debugger;
в коде, чтобы сделать контрольную точку для firebug. Например:
alert('1');
debugger;
alert('2');
И firebug автоматически останавливается на этом ключевом слове.
Посмотрите на имена отладки функций Firebug (fn) и undebug (fn), которые устанавливают точку останова в первой строке именованной функции.
См. пункт № 6:
http://michaelsync.net/2007/09/30/firebug-tutorial-script-tab-javascript-debugging