Ich möchte den Chrome-Debugger zwingen, in einer Zeile per Code zu brechen oder eine Art Kommentar-Tag wie so etwas zu verwenden console.break()
.
Ich möchte den Chrome-Debugger zwingen, in einer Zeile per Code zu brechen oder eine Art Kommentar-Tag wie so etwas zu verwenden console.break()
.
Antworten:
Sie können debugger;
innerhalb Ihres Codes verwenden. Wenn die Entwicklerkonsole geöffnet ist, wird die Ausführung unterbrochen. Es funktioniert auch in Firebug.
setTimeout(function(){debugger;}, 3000);
debugger;
wird auch in allen gängigen Browsern unterstützt. Für weitere Informationen: w3schools.com/jsref/jsref_debugger.asp
Richten Sie einen Button-Click-Listener ein und rufen Sie den an debugger;
Beispiel
$("#myBtn").click(function() {
debugger;
});
Demo
Ressourcen zum Debuggen in JavaScript
Sie können auch verwenden debug(function)
, um zu brechen, wenn function
aufgerufen wird.
Wie andere bereits gesagt haben, debugger;
ist der Weg zu gehen. Ich habe ein kleines Skript geschrieben, das Sie über die Befehlszeile in einem Browser verwenden können, um den Haltepunkt unmittelbar vor dem Funktionsaufruf festzulegen und zu entfernen:
http://andrijac.github.io/blog/2014/01/31/javascript-breakpoint/
Wechseln Sie auf der Registerkarte "Skripte" zu Ihrem Code. Klicken Sie links neben der Zeilennummer auf. Dadurch wird ein Haltepunkt festgelegt.
Bildschirmfoto:
Sie können dann Ihre Haltepunkte auf der rechten Registerkarte verfolgen (wie im Screenshot gezeigt).
debugger
ist ein reserviertes Schlüsselwort von EcmaScript und hat seit ES5 eine optionale Semantik
Infolgedessen kann es nicht nur in Chrome, sondern auch in Firefox und Node.js über verwendet werdennode debug myscript.js
.
Der Standard sagt :
Syntax
DebuggerStatement : debugger ;
Semantik
Durch die Auswertung der DebuggerStatement-Produktion kann eine Implementierung einen Haltepunkt verursachen, wenn sie unter einem Debugger ausgeführt wird. Wenn ein Debugger nicht vorhanden oder aktiv ist, hat diese Anweisung keine beobachtbare Auswirkung.
Die Produktion DebuggerStatement: debugger; wird wie folgt bewertet:
- Wenn eine implementierungsdefinierte Debugging-Funktion verfügbar und aktiviert ist, dann
- Führen Sie eine implementierungsdefinierte Debugging-Aktion aus.
- Das Ergebnis sei ein implementierungsdefinierter Abschlusswert.
- Sonst
- Das Ergebnis sei (normal, leer, leer).
- Ergebnis zurückgeben.
Keine Änderungen in ES6.
Es ist möglich und es gibt viele Gründe, warum Sie dies tun möchten. Zum Beispiel das Debuggen einer Javascript-Endlosschleife kurz vor dem Beginn des Ladens der Seite, wodurch verhindert wird, dass das Chrome Developer Toolset (oder der Firebug) korrekt geladen wird.
Siehe Abschnitt 2 von
http://www.laurencegellert.com/2012/05/the-three-ways-of-setting-breakpoints-in-javascript/
Oder fügen Sie Ihrem Code am gewünschten Testpunkt einfach eine Zeile mit dem Wort Debugger hinzu.
Haltepunkt: -
Der Haltepunkt wird nicht mehr ausgeführt und Sie können JavaScript-Werte untersuchen.
Nachdem Sie die Werte überprüft haben, können Sie die Ausführung des Codes fortsetzen (normalerweise mit einer Wiedergabetaste).
Debugger: -
Der Debugger; stoppt die Ausführung von JavaScript und ruft die Debugging-Funktion auf.
Die Debugger-Anweisung unterbricht die Ausführung, schließt jedoch keine Dateien und löscht keine Variablen.
Example:-
function checkBuggyStuff() {
debugger; // do buggy stuff to examine.
};
Sie können auch debug(functionName)
Debug-Funktionen einstellen .
https://developers.google.com/web/tools/chrome-devtools/javascript/breakpoints#function
Es gibt viele Möglichkeiten, JavaScript-Code zu debuggen. Die folgenden zwei Ansätze werden häufig zum Debuggen von JavaScript über Code verwendet
Verwenden Sie console.log()
diese Option, um die Werte in der Browserkonsole auszudrucken. (Dies hilft Ihnen, die Werte an bestimmten Stellen Ihres Codes zu verstehen.)
Debugger-Schlüsselwort. Fügen Sie debugger;
die Speicherorte hinzu, die Sie debuggen möchten, öffnen Sie die Entwicklerkonsole des Browsers und navigieren Sie zur Registerkarte Quellen.
Weitere Tools und Möglichkeiten zum Debuggen von JavaScript-Code finden Sie unter diesem Link von W3School .
Ich würde nicht empfehlen, debugger;
wenn Sie nur den Javascript-Code töten und stoppen möchten, da debugger;
Ihr Javascript-Code nur vorübergehend eingefroren und nicht dauerhaft gestoppt wird.
Wenn Sie Javascript-Code auf Ihren Befehl hin ordnungsgemäß beenden und stoppen möchten, verwenden Sie Folgendes:
throw new Error("This error message appears because I placed it");
debugger;
oder nur reguläre Haltepunkte in der Entwickler-Symbolleiste verwendet?