こんにちは、ふじかーです。
C言語をテキストエディタで書いているような 組み込み開発現場 では
(´-`)。oO( このロジックが意図通り動作するか、ちょいと手元で確認したい。。 )
みたいな時、少し困ります。
テキストエディタではそんな事できないし
VisualStudioの無償版は昔に比べて準備も大変だし、使うのも重いし不便。
業務のクロスコンパイル環境を立ち上げるのは、もっと大袈裟で面倒くさい。
ということで「軽量なツールで、C言語をお手軽にステップ実行できる環境」 を作成します。
以前、もりもり君が「なかなか使いやすいっスよ」とお勧めしてくれた
Visual Studio Code(以下、VS Code)を使います。
<手順>
コンパイラ(gcc)をインストール
- ダウンロード・インストール
http://www.mingw.org/download/installer
→ mingw-get-setup.exe のダウンロードが始まる
→ 実行して Install → Continue で進める
→ 「MinGW Installation Manager」が起動
- gcc設定
・「mingw32-base」 を右クリックして「Mark for Installation」を選択し、チェックを入れる
・「mingw32-gcc-g++」を右クリックして「Mark for Installation」を選択し、チェックを入れる
・[Installation]→[Apply Changes]]→[Apply]→ セットアップが終われば [Close]
- パスを通す
手順が分からない場合、下記参照。
・Windowsキー+R → [ファイル名を指定して実行] 画面が開く
・「sysdm.cpl」 と入力してEnter → [システムのプロパティ]画面が開く
・[詳細設定]タブ → 環境変数(N) → システム環境変数(S) エリアの 「Path」 を選択 → 編集(I)... をクリック
・[システム変数の編集] ダイアログの [変数値(V)] の末尾に 「;C:\MinGW\bin」 を追記して [OK]
VS Code 本体をインストール
- ダウンロード・インストール
https://code.visualstudio.com/Download
→ 64bit環境なら、[User Installer 64 bit] をクリック
→ VSCodeUserSetup-x64-X.XX.X.exe のダウンロードが始まる
(記載時点ではVSCodeUserSetup-x64-1.28.2.exe)
→ 同意して、次へ次へ~でインストール完了。
- 日本語化
日本語化する必要があります。
・画面左の 拡張機能(Extensions)ボタン を押して「Japanese Language Pack」で検索 → Install → VS Codeを再起動
- C/C++
・こちらも拡張機能から「C/C++」で検索 → Install → VS Codeを再起動
作業場所、test.cの準備
- test.c ファイル準備
#include <stdio.h> int main(int argc, char *args[]) { printf("Hello, world!\n"); return 0; }これを作業フォルダに保存しておきます。ここでは D:\test\c\test.c としました。
またこの作業フォルダを、VS Code のメニューから開いておきましょう。
・メニュー → フォルダーを開く → D:\test\c
デバッグの為の設定
- ビルドタスクの設定(tasks.json)
・フォルダーを開いている状態で Ctrl+Shift+B
・「実行するビルドタスクがありません。ビルドタスクを構成する」というメッセージが出るのでクリック
・「テンプレートからtask.jsonを作成する」というメッセージが出るのでクリック
・表示された候補の中から「Others 任意の外部コマンドを実行する例」を選択
→ 作業フォルダ内に「.vscode/tasks.json」ファイルが自動生成され、画面に表示される
・表示された task.json の
"command": "echo Hello"を削除して、下記を挿入
"command": "gcc -g -O0 -o a.exe test.c", "problemMatcher": "$tsc", "group": { "kind": "build", "isDefault": true }・Ctrl+S で保存しておく
- デバッグ環境の設定(launch.json)
・画面左のデバッグアイコンを押下
・デバッグの開始アイコン(再生マーク)を押下
・表示された候補の中から「C++(GDB/LLDB)」を選択
→ 作業フォルダ内に「.vscode/launch.json」ファイルが自動生成され、画面に表示される
・表示された launch.json の
"program": "enter program name, for example ${workspaceFolder}/a.exe", "miDebuggerPath": "/path/to/gdb",を削除して、下記を挿入
"program": "${workspaceRoot}/a.exe", "miDebuggerPath": "c:\\mingw\\bin\\gdb.exe",・Ctrl+S で保存しておく
デバッグ開始!
・試したいコードをmain関数に記載し、リビルドは Ctrl+Shift+B・ブレークポイントをセットしてF5でデバッグ開始、F10でステップ実行
[デバッグの為の設定] を見ての通り、
gcc を使って test.c を a.exe にビルドして、gdb を使ってデバッグする
というだけのシンプルな構成です。
既存のプロジェクト全体をデバッグするものでは無いけど、軽量だしIntelliSenceも使えるし、
ちょっと机上じゃ面倒な確認をしたい時とか、関数の単体試験などにも使えて便利。
とりあえず現場でも使ってるC環境の手順が整ったので
今度は別の言語も使えるように整備していこう。
2019/1/12追記:Visual Studio Code で C++ と Python をデバッグする
※VS Codeは結構な頻度でバージョンアップを繰り返しており
記事の内容(ver.1.28.2)と 最新のVS Codeとでは、手順や表示が若干異なるかも知れません。
※ちなみに「用意したcソースの日本語が文字化けするよー」という時は
画面下の文字コード選択からポチポチと選べば直せます。