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