VS CodeでC言語のデバッグ環境を作る

開発

[この記事は3ヶ月前に書かれました]

Lineにて以下のようなオープンチャットの場を、実は提供しています。
開発者向けQ&Aと雑談

チャットのやりとりの中で、デバッグ機能を使用しないで苦しんでいる方をよく見かけます。また昔、私が新人研修の講師をしていた時もやはりよく見かけました。


とてもベーシックな技術ですが、記述しておくと役立つかなと思い書いてみました。

プログラミングを学び始めている方は、環境も十分ではないだろうと想像し、VS CodeにおけるC言語のデバッグ環境の構築、操作の内容になっています。

スポンサーリンク

VS Codeのインストール

・まずは、Visual Studio Codeのサイト
・トップ画面より「今すぐダウンロード」をクリック
・環境に合わせて対象の VS Codeをダウンロード

Macの場合

・ダウンロードしたzipファイルを展開し、appファイルをアプリケーションへドラッグ

※とりあえず、以後Macの場合です。希望がありましたらWindowsの場合も記述します。

C/C++ for Visual Studio Code のインストール

英語が苦手な方は、まず日本語化。
・「Extension(拡張機能)」ビューより「Japanese」と検索して「Japanse Language Pack for Visual Studio Code」を選択
・「インストール」クリック

・同じく「拡張機能」ビューにて「C/C++」と検索して「C/C++ for Visual Stduio Code」を選択
・「インストール」をクリック

デバッグ環境作成

・まずはソースコードなどの資産を置くフォルダを作成
 任意の場所で構いません。(/Users/rarara/work)
・VS Codeのメニュー「ファイル」→「開く」で作成したフォルダを選択
・新規作成のアイコンよりファイルを作成(or「ファイル」→「新規ファイル」)
 例)hello.c

・C言語のソースコードを記述。(なんでも構いません。下記の例はhello world)

・「実行」→「デバッグなしで開始」 or 「デバッグを開始」
 C++を選択。
・構成を選択してください。gccでもclangでも構いません。
※環境によって異なると思われます

以下のように「.vscode」フォルダ配下に「launch.json」と「tasks.json」が自動で生成されます

・「実行」→「デバッグなしで開始」 or 「デバッグを開始」
 下部のデバッグコンソールに実行結果が出力されます。

デバッグの実行

・デバッグを開始するには、「実行」→「デバッグを開始」

ブレークポイントの設定

ブレークポイントを設定すると、デバッグ時に設定した箇所で一時停止する

・ブレークポイントを設定するには、ソースコードの左のところをクリック。
・同じくもう一度クリックすると削除

条件付きのブレークポイントの設定

指定の条件に合致した場合のみ、一時停止する。

・ブレークポイントを右クリックして「ブレークポイントを編集」
 下記のように式に条件を記述する(例:i==2)

デバッグの操作

デバッグを開始すると、以下のようなアイコンが表示されます。

左から
・続行
 一時停止していた処理を次のブレークポイントまで実行
・ステップオーバー
 次の一行、処理を進める。その一行が関数だった場合は実行される
・ステップイン
 次の一行、処理を進める。その一行が関数だった場合は関数の内部に入る
・ステップアウト
 呼び出し元の関数まで戻る
・再起動
 プログラムを再起動する
・停止
 デバッグを停止

※それぞれF10,F11などのファンクションキーが割り当てられているので、慣れてきたらキーでの操作をお勧めします。

変数のウォッチ

ブレークポイントで停止した際、そのタイミングにおける変数を見ることができます。
変数ウィンドウは、現在のスコープの変数が表示されます。
また、ウォッチ式で指定の変数や式を入力して表示することも出来ます。

最後に

プログラムを新たに学ぶ方、新入社員、駆け出しエンジニアは、まずプログラムの文法などから学んでいくと思いますが、ちょっと複雑になってくるとデバッグなしには理解するのがすごく難しくなってきます。またプログラムを途中で止めて、変数などを確認できるので処理の理解にも非常に役立ちます。

開発作業においては、他人が書いたコードを読むことも大いにあります。他人が書いたソースコードはとてもわかりにくいですが、デバッグはその理解も助けてくれます。

デバッグは、プログラムを開発する際に必須と言っても過言ではないテクニックです。20年以上前に覚えて、ほぼそのまま使えていますし、初学者こそお勧めです。

コメント

タイトルとURLをコピーしました