エラーが出る環境
Visual Studio Code + Mingw-w64(gccコンパイラ)において以下のメニューを起動したとき。
エラーメッセージ
launch: program ” does not exist.
エラーの原因
次のいずれかの原因である可能性が高い
- launch.jsonファイルが存在しない
- 別のlaunch.jsonを参照している
- launch.jsonにデバッガ―情報がきちんと記述されていない
対処法
該当のC言語ソースコードフォルダ内にある隠しフォルダ .vscode に launch.json ファイルを作成する必要がある。
VsCodeの左側ウインドウのエクスプローラーから
該当のフォルダ(C言語ソースコードのあるフォルダ) > .vscode とたどり、tasks.jsonを開く。
tasks.json の以下2項目の内容が、これから作成する launch.json ファイルに記述が必要なため、チェックしておく。
- label 項目のラベル名
- command 項目のgccコンパイラのパス名(パス名のみです)
.vscode フォルダに launch.jsonを新規作成します。
新規作成した launch.json ファイルに以下のように記述します。
launch.json(緑字の部分は各自の情報に置き換えてください)
{ "version": "0.2.0", "configurations": [ { "name": "g++.exe - Build and debug active file", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "C:\\gcc\\mingw64\\bin\\gdb.exe", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "C/C++: gcc.exe アクティブなファイルのビルド" } ] }
miDebuggerPath | パス名の後に gdb.exe を追加 |
preLaunchTask | ラベル名をそのまま追加(tasks.jsonからコピー&ペーストが安全です) |
上記で示したlaunch.jsonファイルはわたしの環境の場合ですので、miDebuggerPath項目とpreLaunchTask項目は、先ほど tasks.json でチェックした2項目の内容に置き換えてください。
デバッガ―が起動するか確認する
修正後、launch.jsonを上書きします。
適当なC言語ソースコードを開いて、 F5キー を押すか、または 実行 > デバッグの開始 を選択してください。
デバッガ―が起動し以下のような画面になればOKです。(下画面では8行目にブレイクポイントを設定しています)
補足
gcc.exeはコンパイラの実行ファイルですが、gdb.exeはデバッガの実行ファイルになります。
gdb.exeは、通常gcc.exeと同じフォルダにインストールされています。
上記で示した launch.json は、以下のVisual Studio Code公式サイトのサンプルをそのまま利用しただけですので、けっこう適当です。分かる方は修正してみてください。
以上、VsCode:gccデバッガエラー:launch: program ” does not exist.の対処法でした。
コメント
Visual Studio CodeでC言語プログラミングを始める(Windows編)のページで質問させていただいたものです.
記載された対処法通りにlaunch.jsonを作ったところ,C言語のコードが正常に動作しました.ありがとうございました.
良かったです。
わたしもデバッガ設定の勉強になりました。
ありがとうございました!
質問があります。サイトを参考に一通り終えて簡単なc言語でかいたプログラムを実行する際に、launch program “C:Users\(以下略)\Onedrive\ドキュメント¥gcc\hello.exe” does not exist とlaunch program does not existの間になにか挟まったエラーが出てきます。この場合の原因を教えていただけませんか?
ナオキさん、おはようございます。管理人です。
何か挟まったエラー?というものがどんなエラーなのかわかりませんが、まずはlaunch.jsonファイルのmiDebuggerPath項目を確認してみる必要があります。
gccコンパイラ(gcc.exeの保存場所)のインストール場所がc:\gcc\mingw64\binなら、
と記述する必要があります。\(バックスラッシュ、日本語OSだと半角\マーク)は2つ続けて記述します。
エラーメッセージで気になった箇所が2つあります。
1つは「launch program “C:Users\(以下略)\Onedrive\ドキュメント¥gcc\hello.exe” does not exist とlaunch program does not exist」の中の「C:Users…」の箇所です。「C:Users」は通常「C:\Users」となるはずです。
2つ目は「launch program “C:Users\(以下略)\Onedrive\ドキュメント¥gcc\hello.exe” does not exist とlaunch program does not exist」の「ドキュメント」の後の文字が全角の「¥」になっています。ここは半角の「\」である必要があります。
launch.json以外の設定等も含めてパス名の設定が間違っていないか確認してみるといいと思います。