59

私は FireBug Debugger を初めて使用します

4

4 に答える 4

148
  • ステップインすると、デバッガーは現在の行のすべてのメソッド呼び出しに降ります。複数のメソッド呼び出しがある場合、それらは実行順にアクセスされます。メソッド呼び出しがない場合、これはステップ オーバーと同じです。これは、インタプリタから見た個々の実行行をたどることとほぼ同じです。
  • ステップオーバーは、現在のスコープの次の行に進みます (つまり、次の行に進みます)。途中でメソッド呼び出しに降りることはありません。これは一般に、共同作業者の詳細を気にせずに特定のメソッドを介してロジックをたどるために使用され、メソッドのどの時点で予想される条件が違反されているかを見つけるのに役立ちます。
  • ステップアウトは、次の「リターン」または同等の処理まで、つまり制御が前のスタック フレームに戻るまで続行されます。これは通常、この時点/メソッドで必要なすべてを確認し、値が実際に使用される場所までスタックを数層バブルアップしたい場合に使用されます。

次のコードを想像してみてmain()くださいbar

function main() {
   val s = foo();
   bar(s);
}

function foo() {
   return "hi";
}

function bar(s) {
   val t = s + foo(); // Debugger is currently here
   return t;
}

それで:

  • ステップ イン でfooコールに進み、現在の回線がreturn "hi";内の回線になりますfoo
  • ステップ オーバーは、別のメソッドが呼び出されているという事実を無視し、その行に進みreturn t;ます (これにより、何が評価されているかをすばやく確認できますt)。
  • ステップ アウトはメソッドの残りの実行を終了し、bar制御はメソッドの最後の行に戻りmainます。
于 2011-03-22T13:08:29.553 に答える
23
  • ステップ インすると、デバッガーは次の関数呼び出しに入り、そこでブレークします。

  • ステップ オーバーは、デバッガーに次の関数を実行し、その後中断するように指示します。

  • Step Out は、デバッガーに現在の関数を終了し、その後で中断するように指示します。

于 2011-03-22T13:08:47.743 に答える
5

短いバージョンは、step into現在の行で呼び出されている関数の内部に移動し (関数が呼び出されていると仮定)、関数step outを決定したときの場所に戻り、コードの次の行に移動するだけです。例えば:step intostep over

window.someFunction = function() {
    var x = 10;    //step over to move to the next line
                   //step out to return to the line after where 'someFunction()' was called
                   //step into not available
    var y = 20;
    return x * y;
};

//set breakpoint here
var x = 7;   //step over to execute this line and move to the 
             //next (step into and step out not available)
x += someFunction();  //step over to move to the next line
                      //step into to move to someFunction() (above)
                      //step out not available
alert(x);    //step over to display the alert
             //step out and (probably) step into not available
于 2011-03-22T13:13:48.793 に答える
4
  • ステップイン->サブルーチンに入り、次のアクションを待ちます
  • ステップオーバー->再度待たずにサブルーチンをジャンプします
  • ステップアウト->サブルーチン内にいる場合は、再度待機せずにそのままにします
于 2011-03-22T13:07:50.897 に答える