デバッガの使い方

少しプログラムが複雑になっただけで、誤りを発見するのはとても困難になります。しかし、デバッガを使いこなすことで、プログラミングはずっと効率的になります。 上級者ほどデバッガの使い方が上手です。プログラミングをする上でデバッガの習得は必須事項だと思ってください。

ブレークポイント

プログラムの特定の場所で実行を一時中断して、そのときの変数の状態を確認したい場合があります。そのような場合にはブレークポイントが役に立ちます。

まず、上の図と同じプログラムを打ち込んでください。そして、プロジェクトを保存してください。このプログラムは、コンソールウィザードで新規作成してください。

次に、上の図の様に、ソースコードのウインドウの左側をクリックして赤い点を付けます。これがブレークポイントです。ブレークポイントを解除するときは赤い印をクリックします。

それでは、この状態でコンパイル&実行してみてください。

ブレークポイントの位置で実行が一時中断されます。左側の緑の矢印が実行が止まっている位置です。小さな、青い丸は、中断可能な位置を表しています。

トレース(その一)

ここで、次の青い丸に実行を進めてみましょう。そのためには、下の図の様にメニューからステップ実行を選択するかF8キーを押します。

確かに一つ進みました。

今度は、下の図の位置にカーソルを移動して、メニューから、カーソル位置まで実行を選択するか、F4キーを押しましょう。

カーソルのある行まで実行が進みました。

トレース(その二)

ここでは、例題を変えます。まず上の例と同様に、プロジェクトを新規作成して、下の図のプログラムを入力してください。そして、図と同様にブレークポイントを設定してください。

実行すると、ブレークポイントの位置で中断します。そこからF8キーを押して、下の図の様にしてください。

実行を中断した状態で、変数にカーソルを当てると変数の内容が確認できます。

ここで、F8キーを押すと次の行へ進みますが、sumの中の実行を見たいときがあります。 そんなときは、ステップ実行ではなく、トレース実行を選択するか、F7キーを押します。

上の図の様に、sumの先頭で実行が中断しました。他のメニューについても各自試してください。

コールスタック(呼び出し履歴)

ここでは、再び例題を変えます。上の例題と同様にプロジェクトを新規作成してください。そして、下の図のプログラムを入力しブレークポイントを設定してください。

このプログラムは、sumがtest1とtest2から呼ばれます。sumにブレークポイントを設定して実行をとめた時、どこから呼ばれたかを知りたいときがあります。

このプログラムでは、単純でその必要性を実感できないかもしれませんが、 プログラムが複雑になると、ある場所からある関数が呼ばれるとエラーになるという状況が良く起こります。このとき、呼び出し履歴がないと誤りを 見つけるのは殆ど不可能になる場合もあります。よって呼び出し履歴の機能はとても重要です。

コンパイル&実行してsumの中で実行が中断したならば、下の図の様に呼び出し履歴を選択してください。

すると下の図のようなウインドウが出てきます。この意味は下から、_startup、main、test1、sumの順で関数が呼ばれたことを表します。言い換えると、sumはtest1の中から呼ばれ、test1はmainの中から呼ばれ、mainは_startupの中から呼ばれたことを表しています。

ところで、_startupはコンパイルが自動にプログラムにつける関数です。プログラムは、表面上main関数から始まりますが、実は_startupという関数が、プログラムの始まりの裏方の処理を行っているということが呼び出し履歴を見ると分かります。

また呼び出し履歴の関数名をクリックすると、次の関数を呼び出した位置を表示することが出来ます。 この図では、test1をクリックしたところです。