Freigeben über


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

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