前提・実現したいこと
vscodeでデバッグができるように、回答者さんに教えていただきながら1つ1つ一緒に手順を踏んで設定していきたい。
vscode環境設定などよく理解せず、使っているので、この機にある程度設定したい。
プログラミング初心者でエディターのことについて、知識がないので、少しずつ理解していきたい。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード
試したこと
こちらのサイトを参照させていただきました。URL:https://qiita.com/keita1987/items/f01cf9f307fedfca00c6
このサイトを見て、launch.json の編集の項目の「C/C++ それぞれの "program"行を変更する。」の部分で、それぞれの "program"行を何から何に変更すればいいのか分かりません。
補足情報(FW/ツールのバージョンなど)
mac book 使っています
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/08/16 06:38
2018/08/16 09:44
2018/08/16 10:01
2018/08/16 10:40
回答2件
0
ベストアンサー
まず、フォルダ名は何でも良いのでフォルダを作成してその中にソースコードを作成します。
ここではフォルダ名workspace
、ソースコードはmain.cpp
コンパイルして出来上がる実行ファイル名はmain.exe
とします。
以下、Windows上でコンパイラにgcc、デバッガにgdbを使用した場合の説明になります。
MacでclangとLLDBとか使ってる場合はgccをclangに、gdbをLLDB等に
実行ファイルの拡張子をEXEからMacの実行ファイル形式(outかな?よく知らない)に置き換えて下さい。
WindowsでVisual Stidio Community等のコンパイラを使っている場合は、VSCodeでは無くVisual Studio上でデバッグしませう(VSCodeでも出来るけど…)。
そしたら、メニューのタスク
> 既定のビルド タスクの構成
を選択します。
構成するタスクの選択
が出るのでテンプレートから task.json を生成
すると、タスク テンプレートを選択
が出るので、Others 任意の外部コマンドを実行する例
を選択
.vscodeフォルダとtask.jsonファイルがない場合は作成されるので、
それを使用しているコンパイラにあわせて編集します。
以下はコンパイラにgccの場合です。
json
1// task.json 2{ 3 // See https://go.microsoft.com/fwlink/?LinkId=733558 4 // for the documentation about the tasks.json format 5 "version": "2.0.0", 6 "tasks": [ 7 { 8 "label": "Debug Build", // タスクの名前(デバッグ用のビルドだとわかれば何でも良いです。) 9 "type": "process", // タスクの種類(shell⇢processに書き換えて下さい) 10 "command": "gcc", // 使用するコンパイラのコマンド名 11 "args": [ // コンパイラに与える引数のリスト 12 "-g", // デバッグ情報を付与 13 "-O0", // 最適化レベル 14 "main.cpp", // ソースファイル名 15 "-omain.exe" // 実行ファイル名 16 ], 17 "group": { // 複数のタスクがある時にこれがデフォルトのビルドタスクとして選択される 18 "kind": "build", 19 "isDefault": true 20 }, 21 // gccでエラーが出た時に該当の箇所へジャンプさせるのに必要 22 "problemMatcher": "$gcc" 23 } 24 ] 25}
あとは、タスク
> ビルド タスクの実行
でコンパイルを実行し、
workspaceフォルダ内に実行ファイルが生成されるのを確認します。
ここまでが、VSCodeのC/C++向けのワークスペースの基本的な作成方法になります。
つぎに、
アクティビティバーのデバッグを選択して、サイドバーの歯車のアイコンをクリックします。
環境の選択が出るのでC++ (GDB/LLDB)
を選択します。
.vscodeフォルダ内にlaunch.jsonが作成されるのでこれを編集します。
以下はデバッガーにgdbを使用する場合です。
json
1// launch.json 2{ 3 // IntelliSense を使用して利用可能な属性を学べます。 4 // 既存の属性の説明をホバーして表示します。 5 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 6 "version": "0.2.0", 7 "configurations": [ 8 { 9 "name": "(gdb) Launch", 10 "type": "cppdbg", 11 "request": "launch", 12 // 実行ファイルのパス 13 "program": "${workspaceFolder}/main.exe", 14 "args": [], 15 "stopAtEntry": false, 16 "cwd": "${workspaceFolder}", 17 "environment": [], 18 "externalConsole": true, 19 "MIMode": "gdb", 20 // デバッガーのパス 21 "miDebuggerPath": "C:/env/msys64/mingw64/bin/gdb.exe", 22 "setupCommands": [ 23 { 24 "description": "Enable pretty-printing for gdb", 25 "text": "-enable-pretty-printing", 26 "ignoreFailures": true 27 } 28 ] 29 } 30 ] 31}
主に書き換える場所は以下の2箇所です。
json
1"program": "enter program name, for example ${workspaceFolder}/a.exe", 2"miDebuggerPath": "/path/to/gdb",
"program"
ではデバッグする対象である実行ファイルのパスを指定します。
${workspaceFolder}
は今VSCodeで開いているフォルダのパス、すなわちworkspace
フォルダ内を指します。
その中にあるmain.exeがデバッグ対象なので${workspaceFolder}/main.exe
を指定するというわけです。
miDebuggerPath
の値はデバッガーの実行ファイルの場所を指します。
もちろんインストールしたフォルダによって異なるので、環境に合わせて書き換えてください。
ここまで準備ができたら、
ガーター(行番号の左の空白部分)をクリックして値を確認したい場所にブレイクポイントを設置します。
ブレイクポイントが設置出来たらF5キーでデバッグを開始できます。
Debuggerの代替
MicrosoftのC/C++パッケージにもデバッガーのサポートはありますが、
追加でNative Debug拡張機能をインストールします。
設定はこちらのほうが簡単です。
launch.jsonの作成する手順の所でC++ (GDB/LLDB)
の代わりにGDB
かLLDB
を選択します。
launch.jsonを以下のように編集します。
書き換えるのは"target": "./bin/executable",
の部分です。
json
1{ 2 // IntelliSense を使用して利用可能な属性を学べます。 3 // 既存の属性の説明をホバーして表示します。 4 // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387 5 "version": "0.2.0", 6 "configurations": [ 7 { 8 "name": "Debug", 9 "type": "lldb-mi", // GDBを使う場合はgdbを指定する 10 "request": "launch", 11 "target": "${workspaceRoot}/main.exe", 12 "cwd": "${workspaceRoot}" 13 } 14 ] 15}
あとは、ブレークポイントを設置してF5でデバッグを開始すればOKです。
投稿2018/08/16 14:28
編集2018/08/16 16:27退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/16 16:02
退会済みユーザー
2018/08/16 16:44
2018/08/17 03:57
2018/08/17 04:03
2018/08/17 04:05
退会済みユーザー
2018/08/17 04:18
2018/08/17 04:46
退会済みユーザー
2018/08/17 05:24
2018/08/17 06:51
2018/08/17 06:57
退会済みユーザー
2018/08/17 07:01
0
configurations
のprogram
についてですが、コンパイルしたプログラムのパスを指定するものです。
vscodeで開いているdirectoryの絶対パスが${workspaceRoot}
なので、これを活用しつつ、コンパイルして生成された実行ファイルへのパスを記述します。
投稿2018/08/16 10:12
総合スコア5852
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/16 10:25
2018/08/16 14:51
2018/08/16 14:53
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。