Threads¶
The Threads panel lists every thread the adapter reports. Ctrl+T opens it; by default it sits in the left column at full height.
Selecting a thread¶
Move the cursor with J / K and press Enter to select. Unlike the Call Stack, the cursor and the selection are separate here — you can look through the list without switching the debugger's attention.
Selecting a thread re-points the Call Stack at that thread, and through it Variables and Evaluate. Stepping applies to the selected thread.
What the list means per language¶
The panel shows what the adapter reports, and adapters differ:
| Language | What you see |
|---|---|
| Rust, C/C++ | OS threads, including runtime threads you did not create |
| Go | goroutines, which can number in the thousands |
| Python | Python threads; debugpy reports them per interpreter thread |
| PHP | a single thread — DBGp has no concept of several |
For Go this list is the main tool for a deadlock: a goroutine stuck on a channel shows exactly which one, and its stack says on what.
Single-threaded programs¶
Many programs have one thread, and then this panel has one row that never changes. It is a fair candidate for removal from the layout:
See Configuration → UI — remember that clearing a zone requires naming it explicitly, since an unnamed zone keeps its default contents.