Skip to content

vscode cppdbg should not launch a new terminal when using attach mode #1532

@MikeWang000000

Description

@MikeWang000000

Related: microsoft/vscode-cpptools#14118

Environment

  • OS and version: Windows 10
  • VS Code: 1.107.1
  • C/C++ extension: 1.29.3
  • OS and version of remote machine (if applicable): RHEL 8
  • GDB / LLDB version: 16.3

Bug Summary and Steps to Reproduce

Bug Summary:
When using attach mode, vscode cppdbg should not start a new terminal. The terminal is always empty and useless.

Steps to reproduce:

  1. Install C/C++ extension and Tasks Shell Input extension.

  2. launch.json:

    {
        "version": "0.2.0",
        "configurations": [
            {
                "name": "(gdb) Attach",
                "type": "cppdbg",
                "request": "attach",
                "program": "${workspaceFolder}/main",
                "processId": "${input:processID}",
                "MIMode": "gdb"
            }
        ],
        "inputs": [
            {
                "id": "processID",
                "type": "command",
                "command": "shellCommand.execute",
                "args": {
                    "command": "cat ${workspaceFolder}/main.pid",
                    "useFirstResult": true
                }
            }
        ]
    }
  3. main.c:

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    
    int main() {
        FILE *fp = fopen("main.pid", "w");
        if (!fp) {
            return EXIT_FAILURE;
        }
        fprintf(fp, "%ld\n", (long) getpid());
        fclose(fp);
    
        while (1) {
            puts("Hello");
            sleep(3);
        }
        return EXIT_SUCCESS;
    }
  4. Compile and run:

    gcc -g main.c -o main
    ./main
  5. Run - Start Debugging


We need the "attach" mode because the actual program need a special way to launch.

But in "attach" mode, the terminal "cppdbg: main" is useless (and distracting). It will always be empty, because the program prints and reads at its own terminal.

Maybe cppdbg should not launch a terminal when using attach mode, or we need an option at launch.json to make cppdbg not to launch a terminal.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions