2012-04-06 2 views
548

Я хочу заставить хром-отладчик сломаться по строке с помощью кода или использовать какой-либо комментарий, например, console.break().Установить контрольную точку javascript в коде - в хром?

Есть ли способ сделать это?

+36

вы пробовали 'отладчик,' или просто с помощью регулярных точек останова на панели инструментов для разработчиков? – diaho

+0

вы имеете в виду установить точки останова из самого кода, а не устанавливать их с помощью наблюдателя сценариев в инструментах разработчика? –

+1

Или, может быть, лучше: [Установить контрольную точку в XHR в Chrome] (http://stackoverflow.com/questions/3249696/set-a-breakpoint-in-xhr-in-chrome). –

ответ

949

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

+4

A Хороший трюк заключается в том, чтобы запустить отладчик через несколько секунд: 'setTimeout (function() {debugger;}, 3000);' – Shahar

+28

Является ли обычная практика таймера? Проверка/обоснование? –

+3

Это очень полезно. Также обратите внимание, что 'debugger;' поддерживается во всех основных браузерах. Для получения дополнительной информации: http://www.w3schools.com/jsref/jsref_debugger.asp – ScottyG

5

На вкладке «Сценарии» перейдите туда, где находится ваш код. Слева от номера строки нажмите. Это установит точку останова.

Скриншот:

screenshot of breakpoint in chrome

Вы тогда сможете отслеживать точки останова на вкладке правой (как показано на скриншоте).

+38

Это не отвечает на вопрос, он хочет это сделать * в коде * – robertc

+34

xn .: «Вот фотография моего ответа, когда он был всего лишь маленьким ребенком с 0 голосами. «. – AaronLS

+3

Если вы загружаете JS-скрипт с помощью вызова Ajax, он не будет отображаться здесь, следовательно, необходима точка останова в коде. – Petruza

3

Возможно и есть много причин, по которым вы можете это сделать. Например, отладка бесконечного цикла javascript близка к началу загрузки страницы, что предотвращает правильную загрузку набора инструментов для Chrome (или firebug).

См раздел 2

http://www.laurencegellert.com/2012/05/the-three-ways-of-setting-breakpoints-in-javascript/

или просто добавить строку, содержащую слово отладчик кода в нужной точке тестирования.

16

Как уже говорилось, debugger; - это путь. я написал небольшой скрипт, который можно использовать из командной строки в браузере, чтобы установить и удалить точку останова прямо перед вызовом функции: http://andrijac.github.io/blog/2014/01/31/javascript-breakpoint/

16

Настройка нажатием кнопки слушателю и вызвать debugger;

Пример

$("#myBtn").click(function() { 
debugger; 
}); 

Demo

http://jsfiddle.net/hBCH5/

Ресурсы отладки в JavaScript

+1

Это устанавливает точку останова в обработчике кликов, возможно, не то, что требуется OP –

4

debugger является зарезервированным ключевым словом на ECMAScript и с учетом дополнительной семантикой, так как ES5

В результате его можно использовать не только в Chrome, но также в Firefox и Node.js via node debug myscript.js.

standard says:

Синтаксис

DebuggerStatement : 
    debugger ; 

Семантика

Оценка производства DebuggerStatement может позволить реализацию, чтобы вызвать контрольную точку при запуске под отладчиком. Если отладчик отсутствует или активен, этот оператор не имеет наблюдаемого эффекта.

Производственный отладчик: отладчик; оцениваются следующим образом:

  1. Если реализация определяется отладка объект доступен и включено, то
    1. Выполните реализацию определенных действий отладки.
    2. В результате получится определенное значение завершения реализации.
  2. Else
    1. Пусть результат будет (нормальный, пусто, пусто).
  3. Результат возврата.
12

Вы также можете использовать debug(function), чтобы сломаться, когда function называется.

Command Line API Reference: debug

+1

Очень приятно - похоже, Chrome только в это время, но это моя основная платформа в любом случае. Теперь мне просто нужно помнить, чтобы перестать называть мой глобальный флаг отладки «debug» ... – brichins

2

Breakpoint: -

точка останова остановит выполнение, и позволит вам исследовать значения JavaScript.

После изучения значений вы можете возобновить выполнение кода (как правило, с помощью кнопки воспроизведения).

Debugger: -

отладчик; останавливает выполнение JavaScript и вызывает функцию отладки.

Оператор отладчика приостанавливает выполнение, но он не закрывает никаких файлов и не очищает какие-либо переменные.

Example:- 
function checkBuggyStuff() { 
    debugger; // do buggy stuff to examine. 
}; 
Смежные вопросы