Visual Studio Code で C++ のデバッグ時にブレークポイントが無視される
Visual Studio Code に C/C++ for Visual Studio Code の 拡張機能を入れてコードを書いているところ、以下の不具合が発生します。
1.デバッグのサイドバーで変数が何も表示されない。
2.ブレークポイントを設定しても反応しない。
原因は何でしょうか。
コンパイラはg++を使用しています。
最適化されているとの指摘がありましたが、g++には-O0のオプションをつけています。
これでは最適化させないのに不十分なのでしょうか?
ソースファイルは、
#include <iostream>
using namespace std;
int main(){
cout<<"hello world"<<endl;
int a=10;//<--ここにブレークポイント
int i;
cin>>i;
cout<<"hello world 2"<<endl;
return 0;
}
tasks.jsonは
{
"version": "2.0.0",
"tasks": [
{
"label": "C++ Build",
"type": "shell",
"command": "g++",
"args": [
"-O0",
"-g",
"${file}",
"-o",
"${cwd}\\${fileBasenameNoExtension}"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": []
}
]
}
launch.jsonは、
{
"version": "0.2.0",
"configurations": [
{
"name": "(Windows) Launch",
"type": "cppvsdbg",
"request": "launch",
"program": "${cwd}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"logging": {
"trace" : true,
}
}
]
}
launch.jsonを以下のように書き換えることで解決しました。
{
// IntelliSense を使用して利用可能な属性を学べます。
// 既存の属性の説明をホバーして表示します。
// 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "C:/MinGW/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]