Compartir a través de


.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.

  1. 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