50281


Visual Studio Code に C/C++ for Visual Studio Code の
拡張機能を入れてコードを書いているところ、以下の不具合が発生します。  
1.デバッグのサイドバーで変数が何も表示されない。  
2.ブレークポイントを設定しても反応しない。  
原因は何でしょうか。  
コンパイラはg++を使用しています。  
最適化されているとの指摘がありましたが、g++には-O0のオプションをつけています。  
これでは最適化させないのに不十分なのでしょうか？

ソースファイルは、

[code]

    #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;
    }
    
[/code]

tasks.jsonは

[code]

    {
        "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": []
            }
        ]
    }
    
[/code]

launch.jsonは、

[code]

    {
        "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,
                }
            }
        ]
    }
    
[/code]

launch.jsonを以下のように書き換えることで解決しました。

[code]

    {
        // 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
                    }
                ]
            }
        ]
    
[/code]


CC BY-SA 4.0
2018-10-24T08:50:56.770
49610
2018-11-13T07:14:26.810
2018-11-13T07:12:40.500
30662
30662
question
c++ vscode
Visual Studio Code で C++ のデバッグ時にブレークポイントが無視される


解決しました。  
launch.jsonに誤りがありました。

[code]

    {
        "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
                    }
                ]
            }
        ]
    
[/code]


CC BY-SA 4.0
2018-11-13T07:14:26.810
50281
2018-11-13T07:14:26.810
30662
49610
answer