次の方法で共有


.scriptdebug (JavaScript のデバッグ)

を使う .scriptdebug コマンドを使ってJavaScriptスクリプトをデバッグすることができる。

.scriptdebug FileName

パラメーター

FileName

デバッグするデバッガJavaScriptスクリプトの名前を指定します。

環境

モード

すべて

Targets

すべて

プラットフォーム

すべて

追加情報

JavaScriptデバッグの概要については、以下を参照 JavaScript Debugger Scripting - JavaScript Debugging.

Note

WinDbg で JavaScript デバッグを使用するには、管理者としてデバッガーを実行します。

解説

JavaScriptをデバッグする前に、以下のステップを完了させてください。

  1. サンプルスクリプトをロードします。

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

スクリプトの積極的なデバッグを開始するには .scriptdebug コマンドを使用している。

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

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

プロンプトが表示されたら >>> Debug [DebuggableSample <No Position>] > と入力要求があれば、スクリプト・デバッガーの中にいることになる。

を使用する .ヘルプ コマンドまたは ? をクリックすると、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

Events

を使用する sx スクリプトデバッガコマンドで、トラップ可能なイベントのリストを見ることができます。

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

を使う sxe スクリプト・デバッガ・コマンドを使用して、いずれかのブレーク動作を有効にします。 例えば、break on entryをオンにして、スクリプト内のコードが実行されるとすぐにスクリプト・デバッガにトラップするようにするには、次のコマンドを使う。

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

を使用する sxd スクリプト・デバッガ・コマンドで、ブレークポイント動作を無効にすることができます。

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

スタック トレース

を使用する k コマンドでスタック・トレースを表示する。

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

変数の列挙

用途 ?? JavaScriptの変数の値を列挙する。

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

ブレークポイント

ブレークポイントを追加するには、以下のブレークポイントコマンドを使用する。

bp <bpid>: ブレークポイントを設定する

bd <bpid>: ブレークポイントを無効にする

be <bpid>: ブレークポイントを有効にする

bc <bpid>: ブレークポイントをクリアする

bpc: 現在の行にブレークポイントを設定する

bl: ブレークポイントのリスト

フロー制御 - ナビゲーション

スクリプトを進めるには、以下のコマンドを使用する。

p: 跨ぐ

t: ステップイン

g: スクリプトを続ける

gu: ステップアウト

フレーム

フレームを扱うには以下のコマンドを使用する。

.フレーム <インデックス>: フレーム番号に切り替える <インデックス>

.f+: 前のスタックフレームに切り替える

.f+: 前のスタックフレームに切り替える

やめる

を使用する .切り離す コマンドでJavaScriptデバッガーを切り離す。

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

を使用する q コマンドでJavaScriptデバッガーを終了します。

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