.scriptdebug (Depurar JavaScript)
Utilice el comando .scriptdebug para depurar scripts de JavaScript.
.scriptdebug FileName
Parámetros
FileName
Especifica el nombre del script de JavaScript que se va a depurar.
Entorno
Modos |
all |
Destinos |
all |
Plataformas |
all |
Información adicional
Para obtener una visión general de la depuración de JavaScript, consulte Depurador de script de JavaScript - Depuración de JavaScript.
Nota:
Para utilizar la depuración de JavaScript con WinDbg, ejecute el depurador como administrador.
Comentarios
Antes de depurar un JavaScript, complete los siguientes pasos.
Cargue el script de ejemplo.
0:000> .scriptload C:\MyScripts\DebuggableSample.js
Para iniciar la depuración activa del script, utilice el comando .scriptdebug.
0:000> .scriptdebug C:\MyScripts\DebuggableSample.js
>>> ****** DEBUGGER ENTRY DebuggableSample ******
No active debug event!
>>> Debug [DebuggableSample <No Position>] >
Una vez que vea el aviso >>> Debug [DebuggableSample <No Position>] >
y una solicitud de entrada, estará dentro del depurador de script.
Utilice el comando .help o ? para visualizar una lista de comandos en el entorno de depuración de 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
Eventos
Utilice el comando sx para ver la lista de eventos que pueden interceptarse.
>>> 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
Utilice el comando de depurador de script sxe ara activar cualquiera de los comportamientos de interrupción. Por ejemplo, para activar la interrupción en la entrada de modo que el script se intercepte en el depurador de script en cuanto se ejecute cualquier código dentro de él, utilice este comando.
>>> Debug [DebuggableSample <No Position>] >sxe en
sxe en
Event filter 'en' is now active
Utilice el comando de depurador de script sxd ara desactivar cualquiera de los comportamientos de interrupción.
>>> Debug [DebuggableSample 34:5] >sxd en
sxd en
Event filter 'en' is now inactive
Seguimiento de la pila
Utilice el comando k para mostrar un seguimiento de la pila.
>>> 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())
Enumeración de variables
Utilice ?? para enumerar los valores de las variables de JavaScript.
>>> Debug [DebuggableSample 34:5] >??someObj
??someObj
someObj : {...}
__proto__ : {...}
a : 0x63
b : {...}
Puntos de interrupción
Utilice los siguientes comandos de punto de interrupción para trabajar con puntos de interrupción adicionales.
bp <bpid>: Establecer un punto de interrupción
bd <bpid>: Deshabilitar el punto de interrupción
be <bpid>: Habilitar el punto de interrupción
bc <bpid>: Borrar el punto de interrupción
bpc: Establecer un punto de interrupción en la línea actual
bl: Enumerar los puntos de interrupción
Control de flujo: navegación
Utilice los siguientes comandos para avanzar en el script.
p: Pasar por encima
t: Pasar dentro
g: Continuar el script
gu: Salir
marcos de vídeo
Utilice los siguientes comandos para trabajar con marcos de vídeo.
.frame <index>: Cambiar al número de marco de vídeo <índice>
.f+: Cambiar al siguiente marco de vídeo de la pila
.f+: Cambiar al anterior marco de vídeo de la pila
Salir
Utilice el comando .detach para desacoplar el depurador de JavaScript.
>>> Debug [DebuggableSample 34:5] >.detach
.detach
Debugger has been detached from script!
Utilice el comando q para salir del depurador de JavaScript.
>>> Debug [<NONE> ] >q
q