.scriptdebug (Debug JavaScript)
Usare il comando .scriptdebug per eseguire il debug di script JavaScript.
.scriptdebug FileName
Parametri
FileName
Specifica il nome dello script JavaScript del debugger di cui eseguire il debug.
Ambiente
Modalità |
tutto |
Destinazioni |
tutto |
Piattaforme |
tutto |
Informazioni aggiuntive
Per una panoramica del debug javaScript, vedere JavaScript Debugger Scripting - JavaScript Debugging (Scripting del debugger JavaScript - Debug JavaScript).
Nota
Per usare il debug JavaScript con WinDbg, eseguire il debugger come Amministrazione istrator.
Osservazioni:
Prima di eseguire il debug di un codice JavaScript, seguire questa procedura.
Caricare lo script di esempio.
0:000> .scriptload C:\MyScripts\DebuggableSample.js
Per avviare attivamente il debug dello script, usare il comando .scriptdebug .
0:000> .scriptdebug C:\MyScripts\DebuggableSample.js
>>> ****** DEBUGGER ENTRY DebuggableSample ******
No active debug event!
>>> Debug [DebuggableSample <No Position>] >
Dopo aver visualizzato il prompt >>> Debug [DebuggableSample <No Position>] >
e una richiesta di input, si è all'interno del debugger di script.
Usare il comando .help o ? per visualizzare un elenco di comandi nell'ambiente di debug JavaScript.
>>> 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
evento
Usare il comando sx script debugger per visualizzare l'elenco di eventi che possono essere intrappolati.
>>> 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
Usare il comando sxe script debugger per abilitare qualsiasi comportamento di interruzione . Ad esempio, per attivare l'interruzione di immissione in modo che lo script si intrappola nel debugger di script non appena viene eseguito un codice, usare questo comando.
>>> Debug [DebuggableSample <No Position>] >sxe en
sxe en
Event filter 'en' is now active
Usare il comando sxd script debugger per disabilitare qualsiasi comportamento del punto di interruzione.
>>> Debug [DebuggableSample 34:5] >sxd en
sxd en
Event filter 'en' is now inactive
Analisi dello stack
Usare il comando k per visualizzare un'analisi dello stack.
>>> 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())
Enumerazione delle variabili
Usare ?? per enumerare i valori delle variabili JavaScript.
>>> Debug [DebuggableSample 34:5] >??someObj
??someObj
someObj : {...}
__proto__ : {...}
a : 0x63
b : {...}
Punti di interruzione
Usare i comandi del punto di interruzione seguenti per usare punti di interruzione aggiuntivi.
bpid<>: impostare un punto di interruzione
bd <bpid>: disabilitare il punto di interruzione
be <bpid>: abilitare il punto di interruzione
bc <bpid>: cancellare il punto di interruzione
bpc: Impostare il punto di interruzione sulla riga corrente
bl: Elencare i punti di interruzione
Controllo del flusso - Navigazione
Usare i comandi seguenti per procedere nello script.
p: Eseguire il passaggio
t: Eseguire l'istruzione in
g: Continua script
gu: Esci
Fotogrammi
Usare i comandi seguenti per usare i frame.
Indice frame<>: passare all'indice del numero <di frame>
.f+: Passare allo stack frame successivo
.f+: Passare al frame dello stack precedente
Disattivazione
Usare il comando detach per scollegare il debugger JavaScript.
>>> Debug [DebuggableSample 34:5] >.detach
.detach
Debugger has been detached from script!
Usare il comando q per chiudere il debugger JavaScript.
>>> Debug [<NONE> ] >q
q