178_c_m
@178_c_m (kazuki)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

WSL2+Ubuntu、vscodeを使ってc++をデバッグしたい

WSL2+Ubuntu、vscodeを使ってc++をデバッグしたい

例)
競技プログラミング atcoderでコードを書く際にWSL2とubuntu、vscodeを使用してc++をデバッグしたいのですが試行錯誤してもエラーでうまくいきません。ご教授いただければ幸いです。

発生している問題・エラー

launch.jsonとtasks.jsonのコードが黄色い波線でてしまっていてデバッグできない状態です。

例)

デバッグの種類は認識されませんでした。対応するデバッグの拡張機能がインストールされており、有効になっていることを確認してください。
Property stopAtEntry is not allowed.

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

"launch.json"
{
    
  "version": "0.2.0",
  "configurations": [
    {
      "name": "g++ build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}/${fileBasenameNoExtension}",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${workspaceFolder}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "g++ build active file",
      "miDebuggerPath": "/usr/bin/gdb"
    }
  ]
}
"tasks.json"
{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "g++ build active file",
			"command": "/usr/bin/g++",
			"args": [
				"-fdiagnostics-color=always",
				"-g",
				"${file}",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}"
			],
			"options": {
				"cwd": "${fileDirname}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"detail": "コンパイラ: /usr/bin/g++"
		}
	]
}
"c_cpp_properties.json"
{
    "configurations": [
        {
            "name": "WSL",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/include/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
    ],
    "version": 4
}

実際の画面状態
スクリーンショット 2023-08-23 153727.png

スクリーンショット 2023-08-23 153735.png

スクリーンショット 2023-08-23 153741.png

自分で試したこと

一日調べていろいろ書き替えましたが解決法が見つかりませんでした。
どこを直せばいいのかわかりません。
この状態でなんでかわかりませんが、黄色い波線が消えて一度だけデバッグできたのですがvscodeを落としてからは実行ボタンしかでなくなり、波線もまた出てデバッグボタンが表示されなくなりました。

スクリーンショット 2023-08-23 154033.png

このような状態です。

0

1Answer

C++のデバッグをVSCodeでやったことがないので、そこらへんはわかりませんが…

明後日のこと言ってたら申し訳ないですが、
VSCodeがWSLに接続されてないということは、無いですかね?

WSL拡張いれてると、こんなコマンドが使えて
image.png

接続してると、左下がこんな感じになります。
image.png

1Like

Comments

  1. @178_c_m

    Questioner

    Yamazinさんありがとうございます。
    スクリーンショット 2023-08-23 172525.png
    下記のように接続してjsonファイルが黄色い波線になっている状態です。

  2. あと思いついたのは、「拡張機能がWSL接続時の方に入っているか?」くらいですかね
    (WSLをつないだ状態で拡張機能をインストール)

    一応VSCodeのC++デバッグのリファンレンスがあったので貼っておきます。

  3. @178_c_m

    Questioner

    度々ありがとうございます。
    拡張機能はインストールされており、画像のようなメッセージがでておりましたが、スクリーンショット 2023-08-24 163254.png
    vscodeの提案?みたいなのが出力されtasks.jsonをvscode側で自動修正してもらったようでデバッグできるようになりました。
    原因はtasks.jsonの不適切な記述だったようです。
    ありがとうございました。

Your answer might help someone💌