Lỗi trình gỡ lỗi mã phòng thu trực quan: "Không thể tìm thấy tác vụ 'gcc xây dựng tệp hoạt động'


8

Tôi đang cố gắng định cấu hình không gian làm việc C / C ++ trong Visual Studio Code bằng Ubuntu Linux và tôi không biết làm thế nào để trình gỡ lỗi hoạt động chính xác. Tôi đã sao chép từ internet tệp 'task.json' để có thể biên dịch mã của mình bằng cách nhấn F5 nhưng tôi nghĩ rằng nó gây ra một số vấn đề với trình gỡ lỗi vì mỗi lần tôi thử vào chế độ gỡ lỗi, lỗi "Có thể không tìm thấy tác vụ 'gcc build tệp hoạt động' bật lên. Dưới đây là 2 jsons: task.json

{
"version": "2.0.0",
"tasks": [
    {
        "label": "debug",
        "type": "shell",
        "command": "",
        "args": [
            "g++",
            "-g",
            "${relativeFile}",
            "-o",
            "a.exe"
        ]
    },
    {
        "label": "Compile and run",
        "type": "shell",
        "command": "",
        "args": [
            "g++",
            "-g",
            "${relativeFile}",
            "-o",
            "${fileBasenameNoExtension}.out",
            "&&",
            "clear",
            "&&",
            "./${fileBasenameNoExtension}.out"
        ],
        "group": {
            "kind": "build",
            "isDefault": true
        },
        "problemMatcher": {
            "owner": "cpp",
            "fileLocation": [
                "relative",
                "${workspaceRoot}"
            ],
            "pattern": {
                "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                "file": 1,
                "line": 2,
                "column": 3,
                "severity": 4,
                "message": 5
            }
        }
    },
    {
        "type": "shell",
        "label": "g++ build active file",
        "command": "/bin/g++",
        "args": [
            "-g",
            "${file}",
            "-o",
            "${fileDirname}/${fileBasenameNoExtension}"
        ],
        "options": {
            "cwd": "/bin"
        },
        "problemMatcher": [
            "$gcc"
        ],
        "group": "build"
    }
]

}

launch.json

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
    {
        "name": "(gdb) Launch",
        "type": "cppdbg",
        "request": "launch",
        "program": "enter program name, for example ${workspaceFolder}/a.out",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceFolder}",
        "environment": [],
        "externalConsole": false,
        "MIMode": "gdb",
        "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            }
        ]
    },
    {
        "name": "gcc 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": "gcc build active file",
        "miDebuggerPath": "/usr/bin/gdb"
    }
]

}

Cảm ơn trước sự giúp đỡ, tôi thực sự không biết gì.

Câu trả lời:


2

Bạn cần chỉ định đường dẫn và tên của tệp. Tất nhiên gỡ lỗi chỉ có thể nếu nhị phân được biên dịch với cờ g (đầu ra trở nên nặng hơn và ít bị nén hơn).

  • launch.json sẽ ánh xạ tới tệp nhị phân

    "chương trình": "$ {workspaceFolder} /a.out",

  • task.json sẽ liên quan đến cách biên dịch

    "args": ["-g", "$ {workspaceFolder} / *. cpp", "-o", "$ {workspaceFolder} /a.out"

https://www.youtube.com/watch?v=X2tM21nmzfk&app=desktop

Nếu bạn không thể làm cho nó hoạt động thông qua vscode, bạn có thể muốn sử dụng một công cụ khác như GDB. GDB cũng hoạt động rất tốt trong Terminal trong Linux / VM và có thể là WSL.


5

Trong task.jsontệp của bạn , không có tác vụ nào được gắn nhãn là 'gcc xây dựng tệp hoạt động' được yêu cầu như một tệp preLaunchTasktrong launch.json.

Vì vậy, bạn có thể thay đổi labelnhiệm vụ hoặc thay đổi nội dung preLaunchTaskđể làm cho chúng phù hợp.

Chỉ cần thay đổi nội dung preLaunchTaskthành "g ++ xây dựng tệp hoạt động". Nó sẽ làm việc.


Cảm ơn, nó đã giải quyết vấn đề.
Jabba
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.