microsoft / microsoft/vscode-cpptools

High CPU and memory with GDB

Offen
#11,005 4 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

Environment
  • OS and version: Windows 11
  • VS Code: 1.78.2
  • C/C++ extension: 1.16.0 & 1.15.4
  • OS and version of remote machine CENTOS 7.9.2009
  • GDB / LLDB version: GNU gdb (GDB) Red Hat Enterprise Linux 10.2-6.el7
Bug Summary and Steps to Reproduce

Bug Summary:
Debug my executable, before it even breaks in main or loads any symbols it spins for minutes at 100% CPU while allocating a ton of memory. Stepping through is very slow also. Using gdb from the command line is very fast, however a suboptimal experience. I have tried it with the system gdb also. I see the same behavior

image
Debugger Configurations
launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/Debug/bin/Debug/dds_worker",
            "args": ["--no-heartbeats"],
            "stopAtEntry": true,
            "cwd": "${workspaceFolder}/DDS/dds",
            "environment": [],
            "miDebuggerPath": "/opt/rh/devtoolset-11/root/usr/bin/gdb",
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Enable break on all exceptions",
                    "text": "catch throw",
                    "ignoreFailures": true
                }
        
            ]
        }

    ]
}
Debugger Logs
There's a lot of lines, but most look like
1: (111798) <-1017-symbol-list-lines /home/dev/scratch/connector.cpp
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (111802) 1013: elapsed time 103627\n"},"seq":226}
1: (111802) 1013: elapsed time 103627
Other Extensions

No response

Additional Information

No response

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

Beginnen Sie mit der launch.json-Konfiguration und den Debugger-Protokollen, die wiederholte symbol-list-lines-Anfragen zeigen; reproduzieren Sie den Start und vergleichen Sie das Verhalten von VS Code mit dem von GDB über die Kommandozeile. Verfolgen Sie den durch diese Anfragen betroffenen Pfad zum Laden von Symbolen und zum schrittweisen Ausführen. Erledigt ist die Aufgabe, wenn das Debugging vor main nicht mehr minutenlang 100 % CPU-Auslastung verursacht oder übermäßig viel Speicher zuweist und das schrittweise Ausführen reaktionsschnell ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp, typescript
Bereich
devtools, performance
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

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