Q:

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
                }
            ]
        }
    ]

A:

解決しました。
launch.jsonに誤りがありました。
{
    "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
                }
            ]
        }
    ]

