microsoft / microsoft/vscode-cpptools

[Feature Request] [gdb] Support Variable Paging

Aperta
#2,700 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

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

Descrizione

Type: Debugger

Describe the bug

  • OS and Version: Windows 10 & macOS
  • VS Code Version: 1.28.2
  • C/C++ Extension Version: 0.19.0

The debugging experience with gdb becomes unusable when there is a large number of local variables, e.g. 100-200, half of them arrays. With "engineLogging": true and gdb pretty-printing disabled, I can see in the debug console that when a breakpoint is hit or when I forward one step the C++ extension is querying gdb sequentially for information about each local variable, each request taking around half a second. This means that each step to the next line takes around half a minute in my case for this code base.

When stepping through code it is often not needed to know information about all variables, but instead just the ones that are in the watch window. If only those were fetched and the rest lazily in the background or on demand, then stepping would be fast even with large numbers of local variables. Maybe there is another way to improve performance, but this is what came to my mind from an outside perspective.

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

Inizia esaminando la gestione del debugger dell'estensione C/C++ e riproduci il rallentamento con engineLogging abilitato mentre esegui passo passo codice con molte variabili locali. Il comportamento richiesto consiste nell'evitare di recuperare in sequenza ogni variabile locale durante l'esecuzione passo passo, recuperando tempestivamente le variabili osservate o richieste e il resto in modo differito o su richiesta.

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

Valutazione

Stack tecnologico
cpp, typescript
Ambito
devtools, performance
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
30/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.