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 function
zostanie 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?