0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linux上のVSCodeでC言語プログラムをデバッグする手順メモ

Posted at

タイトルの通りです。
手順をメモっておきます。
検証した環境はRaspberryPi4Bです。

概略

CMakeとかは使わずに、Makefileだけを使います。

概略としては以下の通りです。

  • Makefileでデバッグ情報付与オプションを指定する
  • launch.json の "program"に、実行可能ファイルのパスを設定する

下準備する

  • ソースコード一式とMakefileをまとめるディレクトリを作る
    例: ~/develop/hello
  • そのディレクトリに.vscodeディレクトリを作る
  • そのディレクトリにソースコード一式とMakefileを入れておく
  • vscodeを起動する
$ mkdir ~/develop/hello
$ cd ~/develop/hello
$ mkdir .vscode
$ code ./

コードとMakefileを書く(.cとか.cppとか)

例として foo.c bar.c をファイル名とします。内容はなんでもいいです。

CC = gcc
OBJECTS = foo.o bar.o

#debugターゲット指定時に、デバッグシンボル付与および最適化なしオプション
debug: CFLAGS= -g -O0

.PHONY: clean debug

hello : $(OBJECTS)
	gcc -o hello $(OBJECTS)

debug : $(OBJECTS)
	gcc -o hello $(OBJECTS)
 
clean:
	rm $(OBJECTS) hello

一旦makeしてビルドできることを確認する

$ make

デバッグシンボルを付与してmakeする

$ make debug

VSCodeでデバッグを始めるための操作をする

  • VSCodeのメニュー Run -> Start Debugging (実行->デバッグを開始する)を選択する
  • "launch.json が見つからない"とか、デバッグを開始できない旨のメッセージが表示される
  • そのメッセージに含まれている【launch.json を作成する】旨の選択肢を選ぶ
  • エディタに launch.json の内容が表示される

launch.jsonを編集する

launch.json の中にある設定項目"program"の横に、デバッグ対象のプログラムの実行可能ファイルのパスを設定する。そのほかの項目はとくに設定する必要はなさそう。
今回生成する実行可能ファイルの名前は"hello"としています。

launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++ Runner: Debug Session",
      "type": "cppdbg",
      "request": "launch",
      "args": [],
      "stopAtEntry": false,
      "externalConsole": false,
      "cwd": "/home/pi/develop/hello/",
//=====↓↓↓この部分を変更する↓↓↓=====
      "program": "/home/pi/develop/hello/hello",
//=====↑↑↑この部分を変更する↑↑↑=====
      "MIMode": "gdb",
      "miDebuggerPath": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ]
    }
  ]
}

気を取り直して、もう一回デバッグを開始する

  • VSCodeのメニュー Run -> Start Debugging (実行->デバッグを開始する)を選択する
  • 今度はデバッグが開始される
  • VSCode右下の"DEBUG"タブにデバッグの進行状況が表示される
  • "TERMINAL"タブで標準入出力の確認ができる

これで、ブレークポイントの設定とか、変数のウォッチとかもできているはず。

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?