Condividi tramite


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

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