Bagikan melalui


.scriptdebug (Debug JavaScript)

Gunakan perintah .scriptdebug untuk men-debug skrip JavaScript.

.scriptdebug FileName

Parameter

FileName

Menentukan nama skrip JavaScript debugger yang akan di-debug.

Lingkungan

Mode

all

Target

all

Platform

all

Informasi Tambahan

Untuk gambaran umum penelusuran kesalahan JavaScript, lihat Pembuatan Skrip JavaScript Debugger - Penelusuran Kesalahan JavaScript.

Catatan

Untuk menggunakan Penelusuran Kesalahan JavaScript dengan WinDbg, jalankan debugger sebagai Administrator.

Keterangan

Sebelum Anda men-debug JavaScript, selesaikan langkah-langkah berikut.

  1. Muat sampel skrip.

    0:000> .scriptload C:\MyScripts\DebuggableSample.js
    

Untuk mulai men-debug skrip secara aktif, gunakan perintah .scriptdebug .

0:000> .scriptdebug C:\MyScripts\DebuggableSample.js
>>> ****** DEBUGGER ENTRY DebuggableSample ******
           No active debug event!

>>> Debug [DebuggableSample <No Position>] >

Setelah Anda melihat perintah >>> Debug [DebuggableSample <No Position>] > dan permintaan input, Anda berada di dalam debugger skrip.

Gunakan perintah .help atau ? untuk menampilkan daftar perintah di lingkungan penelusuran kesalahan 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

Peristiwa

Gunakan perintah debugger skrip sx untuk melihat daftar peristiwa yang dapat terperangkap.

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

Gunakan perintah debugger skrip sxe untuk mengaktifkan salah satu perilaku pemutusan. Misalnya untuk mengaktifkan pemutusan entri sehingga skrip akan terperangkap ke debugger skrip segera setelah kode apa pun di dalamnya dijalankan, gunakan perintah ini.

>>> Debug [DebuggableSample <No Position>] >sxe en          
sxe en                                                      
Event filter 'en' is now active                             

Gunakan perintah debugger skrip sxd untuk menonaktifkan salah satu perilaku titik henti.

>>> Debug [DebuggableSample 34:5] >sxd en                                                                              
sxd en                                                                                                                 
Event filter 'en' is now inactive                                                                                      

Pelacakan tumpukan

Gunakan perintah k untuk menampilkan jejak tumpukan.

>>> 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())                

Menghitung variabel

Gunakan ?? untuk menghitung nilai variabel JavaScript.

>>> Debug [DebuggableSample 34:5] >??someObj                
??someObj                                                   
someObj          : {...}                                    
    __proto__        : {...}                                
    a                : 0x63                                 
    b                : {...}                                

Titik henti

Gunakan perintah titik henti berikut untuk bekerja dengan titik henti tambahan.

bp <bpid>: Mengatur titik henti

bd <bpid>: Nonaktifkan titik henti

menjadi <bpid>: Aktifkan titik henti

bc <bpid>: Hapus titik henti

bpc: Atur titik henti pada baris saat ini

bl: Mencantumkan titik henti

Kontrol alur - navigasi

Gunakan perintah berikut untuk maju dalam skrip.

p: Langkah di atas

t: Langkah masuk

g: Lanjutkan skrip

gu: Melangkah keluar

Frame

Gunakan perintah berikut untuk bekerja dengan bingkai.

Indeks> .frame<: Beralih ke indeks nomor <bingkai>

.f+: Beralih ke bingkai tumpukan berikutnya

.f+: Beralih ke bingkai tumpukan sebelumnya

Melengkapi

Gunakan perintah .detach untuk mencopot debugger JavaScript.

>>> Debug [DebuggableSample 34:5] >.detach                  
.detach                                                     
Debugger has been detached from script!                     

Gunakan perintah q untuk keluar dari debugger JavaScript.

>>> Debug [<NONE> ] >q                                      
q