ブレイクポイントとはデバッガーの実行を一時停止したい場所(行)にブレイクポイントを設定し一時停止した時点の変数などの状態を確認することができる機能のことである。
ソースコードにブレイクポイントを設定するには二つの方法があり、ブレイクポイントを設定した場所(行)には下のような(5行目)赤い丸がつく。
まずこの「Step over」,「Step in」,「Step out」の三つはステップ実行と呼ばれるもので一行ずつ実行することができ、実行されるごとに変わる変数の挙動を見るためのデバッグの方法です。
「Step over」 | [F10] |
「Step in」 | [F11] |
「Step out」 | [Shift + F11] |
で使うことができる。
- 「Step over」
「Step over」 は一行ずつ実行されるが関数があった場合、その関数を実行して次の行に移行します。
メリットは実行の順番を関数を飛ばして見ることができる点です。
F10を毎回押して進めています。
- 「Step in」
「Step in」は「Step over」とは逆に関数の内部に入っていきます。 メリットは実行の順番をすべて見ることができる点です。
F11を毎回押して進めてます。
- 「Step out」
「Step out」は実行している関数の呼び出し元までプログラムを進める機能です。
F11を押して進めていって21行目で[SHIFT + F11]を押しています。
変数の値を見ることができる機能です。
自動変数ウィンドウは実行し終わった変数を見ることができる
ローカル変数は関数内の変数の値をすべて見ることができる
メリットは、変数の値をわかりやすく見ることができる点です。
ウォッチ式はデバッグ中に値の変化を見続けたい変数などを見続けるようにする機能です。
ウォッチ式の表示方法は [ツールのデバッグ]→[ウィンドウ(W)]→[ウォッチ(W)]→[ウォッチ1~4(1~4)]
上のように、選択した変数の値が書き換わるたびにウォッチ1の中にある値も変わります。
メリットは、バグの原因だと思う変数などを設定することによりバグの発見を早くすることができる。
データブレイクポイントは指定されたアドレスがどこでどう書き換わったのかを簡単に見ることができる機能です。
データブレイクポイントの方法n [ツールのデバッグ]→[ブレークポイントの作成]→[データブレイクポイント]→[アドレスと、条件などを入力]→[OK]
メリットは、書き換わってほしくない変数が書き換わっているところを見つけたりするのに便利です。
メモリウィンドウとはメモリのどこを何で使っているかという情報を見ることができるデバッグ機能です。
特に動的に確保される変数などの値を見るのに便利で、基本16進数か10進数で見ることができます。
メモリウィンドウに表示の方法は
[ツールのデバッグ]→[全般]→[アドレスレベルのデバッグを有効にする]→[F9で一時停止をする]→[デバッグ]→[ウィンドウ(W)]→[メモリ]→[メモリ1~4]
上のように、メモリウィンドウのアドレスのところにアドレスを渡すとint型なので4つ初期化されています。
メリットは、アドレスと中身を見るっことができるので間違ったメモリの書き換えなどを見つけることができる点です。
コールスタックとは関数の呼び出し履歴を表示するものです。
コールスタックの表示の方法は
[ツールのデバッグ]→→[ウィンドウ(W)]→[呼び出し履歴]
上のように、どの関数のなかに入っているのかを見ることができる。 メリットは今どの関数の中にいるかがわかるとどこで何をする関数なのかわかりやすい点です。
イミディエイトウィンドウはコマンドを入力することによって瞬時に計算などを行ってくれる機能です。
イミディエイトウィンドウの表示は
[ツールのデバッグ]→→[ウィンドウ(W)]→[イミディエイト]
上では、aと入力するとaの値が出力され、a = 4と入力するとaの値が4になり、またaと入力すると4に代わっています。しかし、元のコードでは変わりません。
メリットは、計算などの答えをすぐに出すことができる点。