.scriptdebug (Debuggen von JavaScript)
Verwenden Sie den Befehl .scriptdebug zum Debuggen von JavaScript-Skripten.
.scriptdebug FileName
Parameter
FileName
Gibt den Namen des Debugger-JavaScript-Skripts an, das debuggt werden soll.
Environment
Modi |
all |
Targets |
all |
Plattformen |
all |
Zusätzliche Informationen
Einen Überblick über das Debugging von JavaScript finden Sie unter JavaScript Debugger Scripting – JavaScript Debugging.
Hinweis
Um JavaScript-Debugging mit WinDbg zu verwenden, führen Sie den Debugger als Administrator aus.
Hinweise
Bevor Sie ein JavaScript debuggen, führen Sie die folgenden Schritte aus.
Laden Sie das Beispielskript.
0:000> .scriptload C:\MyScripts\DebuggableSample.js
Um das aktive Debugging des Skripts zu starten, verwenden Sie den Befehl .scriptdebug.
0:000> .scriptdebug C:\MyScripts\DebuggableSample.js
>>> ****** DEBUGGER ENTRY DebuggableSample ******
No active debug event!
>>> Debug [DebuggableSample <No Position>] >
Sobald Sie die Eingabeaufforderung >>> Debug [DebuggableSample <No Position>] >
und eine Aufforderung zur Eingabe sehen, befinden Sie sich im Skript-Debugger.
Verwenden Sie den Befehl .help oder ?, um eine Liste der Befehle in der JavaScript-Debugging-Umgebung anzuzeigen.
>>> Debug [DebuggableSample <No Position>] >.help
Script Debugger Commands (*NOTE* IDs are **PER SCRIPT**):
? .................................. Get help
? <expr> .......................... Evaluate expression <expr> and display result
?? <expr> ......................... Evaluate expression <expr> and display result
| ................................. List available scripts
|<scriptid>s ...................... Switch context to the given script
bc \<bpid\> ......................... Clear breakpoint by specified \<bpid\>
bd \<bpid\> ......................... Disable breakpoint by specified \<bpid\>
be \<bpid\> ......................... Enable breakpoint by specified \<bpid\>
bl ................................ List breakpoints
bp <line>:<column> ................ Set breakpoint at the specified line and column
bp <function-name> ................ Set breakpoint at the (global) function specified by the given name
bpc ............................... Set breakpoint at current location
dv ................................ Display local variables of current frame
g ................................. Continue script
gu ............................... Step out
k ................................. Get stack trace
p ................................. Step over
q ................................. Exit script debugger (resume execution)
sx ................................ Display available events/exceptions to break on
sxe <event> ....................... Enable break on <event>
sxd <event> ....................... Disable break on <event>
t ................................. Step in
.attach <scriptId> ................ Attach debugger to the script specified by <scriptId>
.detach [<scriptId>] .............. Detach debugger from the script specified by <scriptId>
.frame <index> .................... Switch to frame number <index>
.f+ ............................... Switch to next stack frame
.f- ............................... Switch to previous stack frame
.help ............................. Get help
Ereignisse
Verwenden Sie den Befehl sx script debugger, um die Liste der Ereignisse anzuzeigen, die abgefangen werden können.
>>> Debug [DebuggableSample <No Position>] >sx
sx
ab [ inactive] .... Break on script abort
eh [ inactive] .... Break on any thrown exception
en [ inactive] .... Break on entry to the script
uh [ active] .... Break on unhandled exception
Verwenden Sie den Befehl sxe script debugger, um eines der Unterbrechungsverhalten zu aktivieren. Wenn Sie zum Beispiel „break on entry“ aktivieren möchten, damit das Skript in den Skript-Debugger wechselt, sobald ein Code darin ausgeführt wird, verwenden Sie diesen Befehl.
>>> Debug [DebuggableSample <No Position>] >sxe en
sxe en
Event filter 'en' is now active
Verwenden Sie den Skriptdebugger-Befehl sxd, um das Verhalten der Haltepunkte zu deaktivieren.
>>> Debug [DebuggableSample 34:5] >sxd en
sxd en
Event filter 'en' is now inactive
Stapelüberwachung
Verwenden Sie den Befehl k, um eine Ablaufverfolgung anzuzeigen.
>>> Debug [DebuggableSample 34:5] >k
k
## Function Pos Source Snippet
-> [00] throwAndCatch 034:05 (var curProc = host.currentProcess)
[01] outer 066:05 (var foo = throwAndCatch())
[02] outermost 074:05 (var result = outer())
Aufzählung von Variablen
Verwenden Sie ??, um die Werte von JavaScript-Variablen aufzuzählen.
>>> Debug [DebuggableSample 34:5] >??someObj
??someObj
someObj : {...}
__proto__ : {...}
a : 0x63
b : {...}
Breakpoints
Verwenden Sie die folgenden Haltepunktbefehle, um mit zusätzlichen Haltepunkten zu arbeiten.
bp <bpid>: Einen Haltepunkt setzen
bd <bpid>: Deaktivieren Sie den Haltepunkt
be <bpid>: Aktivieren Sie den Haltepunkt
bc <bpid>: Den Haltepunkt löschen
bpc: Haltepunkt in der aktuellen Zeile setzen
bl: Haltepunkt(e) auflisten
Flusskontrolle – Navigation
Verwenden Sie die folgenden Befehle, um im Skript voranzukommen.
p: Step over
t: Step in
g: Continue script
gu: Step out
Frames
Verwenden Sie die folgenden Befehle, um mit Frames zu arbeiten.
.frame <index>: Wechsel zur Framenummer <index>
.f+: Wechsel zum nächsten Stackframe
.f+: Wechsel zum vorherigen Stackframe
Beenden
Verwenden Sie den Befehl .detach, um den JavaScript-Debugger zu deaktivieren.
>>> Debug [DebuggableSample 34:5] >.detach
.detach
Debugger has been detached from script!
Verwenden Sie den Befehl q, um den JavaScript-Debugger zu beenden.
>>> Debug [<NONE> ] >q
q