vscodeからc++コンパイルのためにlaunch.jsonを設定しました。
json
1{ 2 "version": "0.2.0", 3 "configurations": [ 4 5 { 6 "name": "(gdb) Launch", 7 "type": "cppdbg", 8 "request": "launch", 9 "program": "${workspaceRoot}/${fileBasenameNoExtension}.exe", 10 "args": [], 11 "stopAtEntry": false, 12 "cwd": "${workspaceFolder}", 13 "environment": [], 14 "externalConsole": true, 15 "MIMode": "gdb", 16 "miDebuggerPath": "C:/MinGW/bin/gdb.exe", 17 "setupCommands": [ 18 { 19 "description": "Enable pretty-printing for gdb", 20 "text": "-enable-pretty-printing", 21 "ignoreFailures": true 22 } 23 ] 24 } 25 ] 26} 27
同じjsonで別のPCではgdbでのデバッグを確認しています。
ところが、F5でデバッグを行おうとすると、
"${workspaceRoot}/${fileBasenameNoExtension}.exe" is missing or invalid
GDB Failed with message:
"${workspaceRoot}/${fileBasenameNoExtension}.exe": not in executable format:File format not recognized
と表示されます。("${workspaceRoot}/${fileBasenameNoExtension}.exe"のファイルパスは実際のファイルパスと一致し、直接叩くと実行できます。gdbも"C:/MinGW/bin/gdb.exe"はあっており実行できます。jsonのエスケープ文字かと思いましたが、/\としても//としても結果は変わりませんでした。)
可能性として考えられるのは文字コードでしょうか。ソースファイルがsjisだったのでutf8でエンコードしてg++ -fexec-charset=CP932 で出力してみましたが、結果は変わりません。
別環境でこのjsonで動いているので環境依存の問題だとは思うのですが、どこが原因かつかみきれません。同様の問題で悩んだことのある方がもしいらっしゃれば、アドバイスをいただけますでしょうか。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。