microsoft / microsoft/vscode-cpptools

Standard error not printed when using PipeTransport

Offen
#5,358 5 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug debugger help wanted
Vorherrschende Sprache
TypeScript
Sterne
6.2k
Forks
1.7k
Ø Merge
14 Std. 46 Min.
Gemergte PRs (30 T.)
61

Beschreibung

Type: Debugger

  • OS and Version: ( local ) Windows_NT x64 10.0.18363 & ( remote ) Red Hat Enterprise Linux Workstation release 7.4 (Maipo)
  • VS Code Version: Version: 1.44.2
  • C/C++ Extension Version: 0.27.0

Environment : VSCode from local computer, connection trough remote-ssh to a Linux computer able to run VSCode then using pipeTransport to a dedicated machine to work on, where vscode can't be launch trough remote-ssh ( older os ).

When debugging with pipe transport, message to standard error are not displayed, although received. It's also reproducible with gdb command -exec p printf(stderr,"stderr")

To Reproduce
main.c

#include <stdio.h>

int main(int argc, char *argv[])
{
    fprintf(stdout,"stdout\n");
    fprintf(stderr,"stderr\n");
    return 0;
}

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/a.out",
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "externalConsole": false,
            "MIMode": "gdb",
            "pipeTransport": {
                "pipeCwd": "${workspaceFolder}",
                "pipeProgram": "ssh",
                "pipeArgs": [
                    "dedicated"
                ],
                "debuggerPath": "/usr/bin/gdb"
            },
            "logging": {
                "engineLogging": true,
            }
        }
    ]
}

Steps to reproduce the behavior:

  1. Compile the program
  2. Launch VSCode debugger
  3. Look for lines in the debug console

1: (7622) STDERR: stderr ---------------------> Program printed to stderr, GDB received it
1: (7626) ->^running ---------------------> Didn't display it
1: (7626) ->*running,thread-id="all"
1: (7626) ->(gdb)
1: (7626) ->stdout ---------------------> Program printed to stdout, GDB received it
stdout ---------------------> Did display it

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere das Problem mit main.c und der pipeTransport-Konfiguration von launch.json und untersuche anschließend den Ausgabepfad des Debuggers auf Nachrichten, die über die Standardfehlerausgabe empfangen wurden. Vergleiche die angezeigte stderr- und stdout-Ausgabe und betrachte das Problem als behoben, wenn stderr sowohl aus der Programmausführung als auch aus dem GDB printf-Befehl in der Debug-Konsole erscheint.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
c, vscode
Bereich
devtools
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.