VS2022 は大変強力なデバッガを搭載しています。全てを説明するには無理がありますが、これから C言語を学ぶ上で、この使い方を知っておくとラクが出来る機能に関して、説明しておきます。
--
いきなりここに飛んで来ちゃった人は、よろしければ下記からご覧ください。
C言語基礎講座インデックス
--
いきなりここに飛んで来ちゃった人は、よろしければ下記からご覧ください。
C言語基礎講座インデックス
- ブレークポイント
プログラムを実行すると、もの凄いスピードで処理が行われています。そこで、任意の場所で停止して状況を確認出来たら便利ですよね。それがブレークポイントです。実行を中断したい場所にマウスでカーソル位置を持って行き、[F9] ボタンを押します。行頭に赤い丸が付いたら、ブレークポイントが設定された事になります。※ これを「ブレークを張った」と言います。

この状態で [F5] を押して実行させてみます。赤丸の位置に黄色の矢印が出て処理が止まります。黄色の矢印は、現在処理を実行している場所を示しています。

ただ、これだけだと停止させたメリットが分からないですよね。プログラム内容の説明は次回以降となりますが、とりあえず、以下のプログラムを入力してください。

ただ、これだけだと停止させたメリットが分からないですよね。プログラム内容の説明は次回以降となりますが、とりあえず、以下のプログラムを入力してください。
#include "stdio.h" int main() { int a = 5; int b = 10; int c = b / a; }
そして、この位置にブレークポイントを張ります。

ブレークポイントが張れたら [F5] で実行します。プログラムの処理が停止したら、VS2022 の下の方を見てください。VS2022 の一番下の方、自動というタブの場所に変数の内容が表示されています。

このように、ブレークポイントを張る事で、その時の変数の値などの状態を確認する事が出来るのです。

このように、ブレークポイントを張る事で、その時の変数の値などの状態を確認する事が出来るのです。
c の値がおかしいのは初期化されていないためです。初期化されていない変数の値は不定となります。停止した状態から、もう一度動作を再開するには [F5] キーを押します。実行を止める場合は、[Shift] + [F5] または、VS2022 のツールバーにある■ボタンをマウスクリックします。
- ステップトレース
今度はブレークポイントの位置をこちらに設定してください。ブレークポイントを張ってある場所で [F9] をもう一度押すと解除になります。ブレークポイントがない場所で [F9] を押すと設定されます。

この状態で [F5] を押して実行します。ブレークポイントで停止します。

黄色矢印の場所が一つ下に移動しました。これは int a = 5; の一行が実行された事を示しています。これがステップトレースです。プログラムを1行ずつ動かして挙動を確認できるというわけです。1行動いた結果、自動は以下のように変化しました。

- 変数の確認
自動は VS2022 が現在プログラマが知りたいであろう変数の値を、そこそこ自動で表示してくれる便利なウィンドウです。処理の結果、前回から値が変化したら赤色で表示されます。また、値の部分をマウスでダブルクリックすると、任意の値に書き換える事が出来ます。デバッグなどで、本来の値以外を入れたらどういう動作になるのかの確認とか、ループ数を大きくしてデバッグ結果を早く知りたいなど、使いどころはかなり多いです。
ローカルは、現在実行している関数内のローカル変数の状態を確認できます。初期化前の状態などを見たい時は、このローカルの方が便利かもしれません。この例だと、a,b,c 全ての変数の初期化前の状態が見えています。

さらに隣のウォッチは、特定の変数の値を追いかけたい場合に使用します。項目をウォッチに追加するをダブルクリックして、自分で変数名を入力するか、編集エリアからマウスで名前の位置に追いかけたい変数をドラッグすると登録されます。

項目削除はマウスで項目選択して後で [DEL] を押します。
とりあえず、これだけ知っておくと便利です。大規模プロジェクトになると、呼び出し履歴もかなり有効なデバッグ機能となります。今は、なんじゃこりゃという状態かもしれませんが、こういう使い方が出来るってのは、次回以降のプログラム入力でステップトレースで確認してもらえると理解が早いと思います。
>> C言語003 プログラムの全体構造に進む
>> C言語基礎講座インデックスに戻る
>> C言語003 プログラムの全体構造に進む
>> C言語基礎講座インデックスに戻る
粂井 康孝
SBクリエイティブ
2013-05-29
※ 私の講座を読んだ後で該当箇所の項目を読み直すと分かりやすいかもしれません。
※ 私の講座を読んだ後で該当箇所の項目を読み直すと分かりやすいかもしれません。



コメント
コメント一覧 (4)
そもそもウィンドウの名前自体が「自動」なのだから致し方ないと思うのですが、「「自動」ペイン」とか「「自動」ウィンドウ」とか書いていただくと初心者が迷わないかもと思ったりしました。でもいちいち書くのは面倒ですね。(ペインは初心者に通じないかも)
当方、コマンドラインコンパイラから入ったもので統合開発環境は敬遠していたため、途中で変数値を書き換えたりできるのは知りませんでした。便利そうですね。今後の連載も楽しみにしています。
内藤時浩
が
しました
内藤時浩
が
しました