teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

Native Debugでの設定方法を追記

2018/08/16 16:27

投稿

退会済みユーザー
answer CHANGED
@@ -120,4 +120,40 @@
120
120
  ブレイクポイントが設置出来たらF5キーでデバッグを開始できます。
121
121
 
122
122
 
123
- ![ブレイクポイント](104a01d7cc37f1f16f53c1120f2e267e.png)
123
+ ![ブレイクポイント](104a01d7cc37f1f16f53c1120f2e267e.png)
124
+
125
+ ---
126
+
127
+ Debuggerの代替
128
+
129
+ MicrosoftのC/C++パッケージにもデバッガーのサポートはありますが、
130
+ 追加でNative Debug拡張機能をインストールします。
131
+ 設定はこちらのほうが簡単です。
132
+
133
+ ![Native Debug](679ebf5b6f53ea95ccddfbd5ae01b3d0.png)
134
+
135
+ launch.jsonの作成する手順の所で`C++ (GDB/LLDB)`の代わりに`GDB`か`LLDB`を選択します。
136
+
137
+ launch.jsonを以下のように編集します。
138
+
139
+ 書き換えるのは`"target": "./bin/executable",`の部分です。
140
+
141
+ ```json
142
+ {
143
+ // IntelliSense を使用して利用可能な属性を学べます。
144
+ // 既存の属性の説明をホバーして表示します。
145
+ // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
146
+ "version": "0.2.0",
147
+ "configurations": [
148
+ {
149
+ "name": "Debug",
150
+ "type": "lldb-mi", // GDBを使う場合はgdbを指定する
151
+ "request": "launch",
152
+ "target": "${workspaceRoot}/main.exe",
153
+ "cwd": "${workspaceRoot}"
154
+ }
155
+ ]
156
+ }
157
+ ```
158
+
159
+ あとは、ブレークポイントを設置してF5でデバッグを開始すればOKです。

2

Mac環境での注意書きを追記

2018/08/16 16:27

投稿

退会済みユーザー
answer CHANGED
@@ -4,6 +4,12 @@
4
4
  ここではフォルダ名`workspace`、ソースコードは`main.cpp`
5
5
  コンパイルして出来上がる実行ファイル名は`main.exe`とします。
6
6
 
7
+ 以下、Windows上でコンパイラにgcc、デバッガにgdbを使用した場合の説明になります。
8
+ MacでclangとLLDBとか使ってる場合はgccをclangに、gdbをLLDB等に
9
+ 実行ファイルの拡張子をEXEからMacの実行ファイル形式(outかな?よく知らない)に置き換えて下さい。
10
+
11
+ WindowsでVisual Stidio Community等のコンパイラを使っている場合は、VSCodeでは無くVisual Studio上でデバッグしませう(VSCodeでも出来るけど…)。
12
+
7
13
  そしたら、メニューの`タスク` > `既定のビルド タスクの構成`を選択します。
8
14
  `構成するタスクの選択`が出るので`テンプレートから task.json を生成`
9
15
 

1

task.jsonのコメントを修正

2018/08/16 14:42

投稿

退会済みユーザー
answer CHANGED
@@ -23,20 +23,20 @@
23
23
  "version": "2.0.0",
24
24
  "tasks": [
25
25
  {
26
- "label": "Debug Build", // タスクの名前
26
+ "label": "Debug Build", // タスクの名前(デバッグ用のビルドだとわかれば何でも良いです。)
27
- "type": "process", // タスクの種類
27
+ "type": "process", // タスクの種類(shell⇢processに書き換えて下さい)
28
- "command": "gcc", // コンパイラのコマンド名
28
+ "command": "gcc", // 使用するコンパイラのコマンド名
29
- "args": [
29
+ "args": [ // コンパイラに与える引数のリスト
30
30
  "-g", // デバッグ情報を付与
31
31
  "-O0", // 最適化レベル
32
32
  "main.cpp", // ソースファイル名
33
33
  "-omain.exe" // 実行ファイル名
34
34
  ],
35
- "group": {
35
+ "group": { // 複数のタスクがある時にこれがデフォルトのビルドタスクとして選択される
36
36
  "kind": "build",
37
37
  "isDefault": true
38
38
  },
39
- // gccエラー箇所ジャンプさせるのに必要
39
+ // gccエラーが出た時に該当の箇所ジャンプさせるのに必要
40
40
  "problemMatcher": "$gcc"
41
41
  }
42
42
  ]