JavaScript: Як встановити умовну точку розриву в інструментах налагодження Chrome


100

У мене є простий js-файл, який друкує дату безперервно.

Я використовую інструменти налагодження Google Chrome (F12)

Моє питання: чи можна встановити умовну межу перерви в Google Chrome ??

У своєму коді я хочу встановити точку перерви, якщо значення секунд дорівнює 50 ??

s = date.getSeconds();

Це jsfiddle, де є моє джерело

(Не впевнений, чому його не працює в jsfiddle)

У всякому разі, моє запитання полягає в тому, чи можна встановити умовну точку розриву в хромованих інструментах налагодження ??


1
+1, оскільки я не знав, що це можливо, поки не пішов перевірити документацію, щоб відповісти на це запитання. Дякую!
Тераот

Відповіді:


141

Так, можливо.

Клацніть правою кнопкою миші маркер точки перерви і виберіть "Змінити точку розриву ...", там ви можете встановити умову.

З Інструментів для розробників Chrome на точках розриву на сайті developers.google.com (мій наголос):

Примітка. Усі точки встановлення, які ви встановили, відображаються під точками розриву на правій бічній панелі. При натисканні на запис переходить до виділеного рядка у вихідному файлі. Після того, як у вас встановлено точку розриву, клацніть правою кнопкою миші на індикаторі блакитного тегу розриву, щоб встановити умовне твердження для цієї точки розриву . Введіть вираз, і точка розриву призупиниться лише у тому випадку, якщо умова справжня.


Дякую, я зробив, як ви згадали, відредагував точку розриву і встановив, якщо (s == 50), але чому його не зупиняється при цій умові ??
Pawan

2
@PreethiJain написати лише умову "s == 50" (без лапок). До речі, мені вдалося змайструвати jsfiddle за адресою: jsfiddle.net/nVpXN/6
Theraot

6
Вам навіть не потрібно додавати точку перерви для початку. Просто натисніть правою кнопкою миші на рядок і натисніть "Додати умовну точку розриву ..." .
Мартін Ендер

2
Людина, це 2017 рік, і я вивчаю нові основні речі про Chrome. # Приємність
The Qodesmith

1
Це просто перевірить оператор у цій точці виконання коду, а потім перерве, якщо це так, те саме, що і точка розриву в операторі if. Я думаю, що ОП хотів дізнатися, чи відладчик перевіряє кожне виконання оператора, чи виконана умова і чи не порушується налагоджувач у цьому рядку. Така поведінка набагато корисніше, оскільки вам не потрібно грати в детектив, щоб дізнатися, коли змінна робить щось несподіване.
викидання

27

Погляньте на debuggerзаяву. В основному він викликає будь-які наявні інструменти налагодження, а в Chrome він працює так, ніби інтерпретатор зустрів точку зламу.

Ваш код буде:

s = date.getSeconds();
if (s == 50) {
   debugger;
}

З довідки :

[налагоджувач] Викликає будь-яку доступну функцію налагодження. Якщо функція налагодження недоступна, ця заява не впливає.


Хоча це насправді більше відповідає духу оригіналу, яким було задано оригінальне запитання, і це чудова інформація; Я думаю, що справжнє питання стосувалося інструментів Chrome, а не ECMAscript. Це сумно; є застереження, яке слід додати: видалити всі debuggerвиклики у виробничому коді. (Я майже впевнений, що підключення призведе до помилки, якщо навколо налагоджувача, але варто зателефонувати, коли тема порушена).
Кріспен Сміт

1
вам не потрібен оператор налагодження, ви також можете мати порожній вислів всередині if і просто додати там точку розриву.
викидання

8

Ви можете встановити умовну точку перерви в Google Chrome, дотримуючись цих кроків:

1. прямо натисніть точку розриву, де ви хочете зупинитися, будь ласка, chk on введіть тут опис зображення

2. натисніть "Додати умовну точку розриву", з'явиться один текст, там ви можете додати умову (результат буде "істинним", якщо умова задоволена, інакше "помилковою"), колір точки перерви піде помаранчевим після додавання умови, чк на введіть тут опис зображення

3.завантажте ту саму сторінку u, побачивши, що точка перерви буде працювати, якщо умова задоволена, як введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.