Как установить точку останова JavaScript из кода в Chrome?
Я хочу заставить отладчик Chrome остановиться на строке через код или с помощью какой-либо специальной комментарной метки, вроде console.break()
. Как это можно реализовать?
5 ответ(ов)
Вы можете использовать debugger;
в своем коде. Если консоль разработчика открыта, выполнение остановится на этой строке. Этот метод также работает в Firebug.
Как уже упоминали другие, debugger;
— это правильный подход. Я написал небольшой скрипт, который вы можете использовать из командной строки в браузере для установки и снятия точки останова прямо перед вызовом функции: http://andrijac.github.io/blog/2014/01/31/javascript-breakpoint/
Чтобы установить слушатель событий для нажатия кнопки и вызвать debugger;
, вы можете использовать следующий код:
$("#myBtn").click(function() {
debugger;
});
Пример
Вы можете протестировать это в онлайн-редакторе, например, по следующей ссылке: http://jsfiddle.net/hBCH5/.
Ресурсы по отладке в JavaScript
Да, это возможно, и есть множество причин, по которым вы можете захотеть это сделать. Например, если вам нужно отладить бесконечный цикл JavaScript, который останавливает загрузку инструментов разработчика (например, Chrome DevTools или Firebug) в начале загрузки страницы.
Вы можете ознакомиться с разделом 2 по следующей ссылке:
http://www.laurencegellert.com/2012/05/the-three-ways-of-setting-breakpoints-in-javascript/
Также вы можете просто добавить строку с словом debugger
в ваш код в нужном месте для тестирования.
Ответ:
Точка останова (Breakpoint):
Точка останова останавливает выполнение кода и позволяет вам исследовать значения переменных JavaScript. После того, как вы проанализировали значения, вы можете возобновить выполнение кода (обычно с помощью кнопки "Воспроизвести").
Отладчик (Debugger):
Команда debugger;
останавливает выполнение JavaScript и вызывает функцию отладки. Инструкция debugger
приостанавливает выполнение, но не закрывает файлы и не очищает переменные.
Пример:
function checkBuggyStuff() {
debugger; // выполняем проблемные действия для анализа.
};
Таким образом, вы можете использовать точки останова и команду debugger
для эффективной отладки вашего кода.
Как устранить предупреждение "Точек останова не удастся достичь. Символы не были загружены для этого документа"?
Цвета в консоли JavaScript
Как получить полный объект в console.log() Node.js, а не '[Object]'?
Доступ к переменным и функциям, определённым в контексте страницы, из расширения
Ошибка sendRequest в Chrome: TypeError: Преобразование циклической структуры в JSON