Chcę zmusić debugera Chrome do włamania się do wiersza za pomocą kodu lub użyć tagu komentarza, takiego jak coś takiego console.break().
Chcę zmusić debugera Chrome do włamania się do wiersza za pomocą kodu lub użyć tagu komentarza, takiego jak coś takiego console.break().
Odpowiedzi:
Możesz użyć debugger;w swoim kodzie. Jeśli konsola programisty jest otwarta, wykonanie zostanie przerwane. Działa również w firebug.
setTimeout(function(){debugger;}, 3000);
debugger;jest również obsługiwana we wszystkich głównych przeglądarkach. Aby uzyskać więcej informacji: w3schools.com/jsref/jsref_debugger.asp
Skonfiguruj odbiornik kliknięcia przycisku i zadzwoń pod numer debugger;
Przykład
$("#myBtn").click(function() {
debugger;
});
Próbny
Zasoby dotyczące debugowania w JavaScript
Możesz także użyć debug(function), aby przerwać, kiedy functionzostanie wywołany.
Jak już powiedzieli inni, debugger;jest to najlepsza droga. Napisałem mały skrypt, którego można użyć z wiersza polecenia w przeglądarce, aby ustawić i usunąć punkt przerwania tuż przed wywołaniem funkcji:
http://andrijac.github.io/blog/2014/01/31/javascript-breakpoint/
Na karcie „Skrypty” przejdź do swojego kodu. Po lewej stronie numeru linii kliknij. To ustawi punkt przerwania.
Zrzut ekranu:

Będziesz wtedy mógł śledzić swoje punkty przerwania w prawej zakładce (jak pokazano na zrzucie ekranu).
debugger jest zastrzeżonym słowem kluczowym od EcmaScript i ma opcjonalną semantykę od ES5
W rezultacie można go używać nie tylko w Chrome, ale także przez Firefox i Node.js przeznode debug myscript.js .
Składnia
DebuggerStatement : debugger ;Semantyka
Ocena produkcji DebuggerStatement może pozwolić implementacji na spowodowanie punktu przerwania, gdy jest uruchamiana w debuggerze. Jeśli debugger nie jest obecny lub aktywny, to stwierdzenie nie ma zauważalnego wpływu.
Produkcja DebuggerStatement: debugger; jest oceniany w następujący sposób:
- Jeśli funkcja debugowania zdefiniowana w implementacji jest dostępna i włączona, wówczas
- Wykonaj akcję debugowania zdefiniowaną w implementacji.
- Niech wynikiem będzie wartość wykonania zdefiniowana jako implementacja.
- Jeszcze
- Niech wynik będzie (normalny, pusty, pusty).
- Zwróć wynik.
Brak zmian w ES6.
Jest to możliwe i istnieje wiele powodów, dla których warto to zrobić. Na przykład debugowanie nieskończonej pętli javascript w pobliżu początku ładowania strony, która uniemożliwia prawidłowe ładowanie zestawu narzędzi dewelopera chrome (lub firebug).
Sekcja 2 z
http://www.laurencegellert.com/2012/05/the-three-ways-of-setting-breakpoints-in-javascript/
lub po prostu dodaj wiersz zawierający słowo debugger do swojego kodu w wymaganym punkcie testowym.
Punkt przerwania: -
punkt przerwania przestanie działać i pozwoli ci zbadać wartości JavaScript.
Po sprawdzeniu wartości można wznowić wykonywanie kodu (zwykle za pomocą przycisku odtwarzania).
Debuger: -
Debugger; zatrzymuje wykonywanie JavaScript i wywołuje funkcję debugowania.
Instrukcja debuggera zawiesza wykonywanie, ale nie zamyka żadnych plików ani nie usuwa żadnych zmiennych.
Example:-
function checkBuggyStuff() {
debugger; // do buggy stuff to examine.
};
Możesz również ustawić debug(functionName)funkcje debugowania.
https://developers.google.com/web/tools/chrome-devtools/javascript/breakpoints#function
Istnieje wiele sposobów debugowania kodu JavaScript. Poniższe dwa podejścia są szeroko stosowane do debugowania JavaScript za pomocą kodu
Używanie console.log()do drukowania wartości w konsoli przeglądarki. (Pomoże to zrozumieć wartości w niektórych punktach kodu)
Słowo kluczowe debugera. Dodaj debugger;do lokalizacji, które chcesz debugować, otwórz konsolę programisty przeglądarki i przejdź do karty źródeł.
Więcej narzędzi i sposobów debugowania kodu JavaScript podano w tym łączu przez W3School .
Nie poleciłbym, debugger;jeśli chcesz po prostu zabić i zatrzymać kod javascript, ponieważ debugger;po prostu tymczasowo zamrozisz kod javascript i nie zatrzymasz go na stałe.
Jeśli chcesz poprawnie zabijać i zatrzymywać kod javascript na swoje polecenie, użyj następujących poleceń:
throw new Error("This error message appears because I placed it");
debugger;lub używasz zwykłych punktów przerwania na pasku narzędzi programisty?