microsoft / microsoft/vscode-cpptools

GDB Showing Dead Threads?

Aperta
#13,393 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

bug debugger help wanted
Lingua principale
TypeScript
Stelle
6.2k
Fork
1.7k
Merge medio
14h 46m
PR unite (30g)
61

Descrizione

Environment
  • OS and version: Ubuntu 20.04.6 LTS
  • VS Code: 1.98.2
  • C/C++ extension: 1.23.6
  • OS and version of remote machine (if applicable): Ubuntu 20.04.6 LTS within Docker Container
  • GDB / LLDB version: GDB 9.2
Bug Summary and Steps to Reproduce

Bug Summary:
I am trying to get debugging with GDB going but am having issues. Everything launches fine and otherwise works. Breakpoints stop the thread (program hangs) but VSCode does not update to show the program is stopped, does not list variables, etc. Basically acts as if it didn't see the breakpoint get hit.

While trying to figure this out, I noticed that the one thing it does show, the threads, is incorrect. After breaking the debugger and using the debugger console, I see this:
-exec info inferiors
Num Description Executable

  • 1 process 121733 /var/pyEnv/bin/python

One process, as expected. However in my side bar:

Image

This list goes down. There are maybe 50 or 60. VSCode thinks these are running threads but they are not. When running they all say running, when stopped they all say stopped. These threads do not exist. Perhaps this is confusing VSCode as to which "thread" it should be listening to?

When I do gdb manually on the command line, it works fine. I can set a breakpoint and have it stop there, view variables, etc. Just seems like VSCode is getting its wires crossed.

Any advice or workarounds?

Steps to reproduce:

  1. In this environment: debug a python "script" (I am trying to debug C code called by python)
  2. With this config: Launch GDB with python
  3. Do: Launch debugger
  4. See error: VSCode doesn't really let me debug. Seems to think there are a lot of threads that don't exist
Debugger Configurations
{
            "name": "Debug Extension",
            "type": "cppdbg",
            "request": "launch",
            "program": "/var/pyEnv/bin/python",
            "args": ["someScript.py", "-a", "-b"],
            "MIMode": "gdb",
            "cwd": "${workspaceFolder}",
            "miDebuggerPath": "/usr/bin/gdb"
        }
Debugger Logs
I am trying to get debug logs but there is so much text that it seems to hang VSCode
Other Extensions

No response

Additional Information

No response

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riprodurre il problema con la configurazione di avvio cppdbg fornita, lo script Python, l’ambiente Docker Ubuntu e GDB 9.2. Confrontare l’output di -exec info inferiors della console del debugger con l’elenco dei thread di VS Code e utilizzare i log del debugger disponibili per determinare perché gli arresti sui breakpoint non aggiornano le variabili o lo stato di esecuzione. Il lavoro è completato quando l’elenco dei thread riflette il processo effettivo e gli arresti sui breakpoint si comportano come in GDB dalla riga di comando.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python, vscode
Ambito
devtools
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
30/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.