Hi folks,
I wanted to share my experience trying to debug a simple C# console application (Console.ReadLine() based) on Linux using VS Codium and various open-source C# extensions — so others can avoid the same rabbit hole.
What I Tried
Platform: CachyOS (Arch-based, Wayland)
Project: Simple C# .NET 9 console app using Console.ReadLine()
Goal: Debug it with working terminal input in VS Codium
I tested:
-
dotnet run(in terminal): works perfectly, input/output behaves as expected -
Debugging via:
-
free-vscode-csharp(by muhammad-sammy) -
DotRush(another FOSS alternative)
-
The Problem
When debugging inside VS Codium using these FOSS extensions:
-
Breakpoints may work
-
But terminal input (
Console.ReadLine()) does not work at all -
No external or integrated terminal is launched during debug
-
The app either hangs or silently skips input
The issue is that both extensions rely on Samsung’s NetCoreDbg (MIT-licensed), which currently lacks support for connecting the debugger to an interactive terminal session during debugging.
This makes it impossible to debug console input apps within VS Codium or similar FOSS-only setups.
What Does Work
-
Running from terminal using
dotnet runordotnet bin/Debug/...dll -
Using
Console.WriteLine()or logging to trace logic -
Debugging manually with
lldb -- dotnet ...(basic, but functional)
What Works Fully
To get working terminal input along with breakpoints and stepping:
-
Use the official VS Code (Microsoft) and install the Microsoft C# extension (
ms-dotnettools.csharp)- This uses
vsdbg, a proprietary debugger with full terminal support
- This uses
-
Alternatively, use JetBrains Rider (full-featured IDE for .NET)
Conclusion
There is currently no fully FOSS way to debug a C# console app with terminal input inside VS Codium.
You’re not doing anything wrong — it’s just a limitation of NetCoreDbg and the current FOSS .NET debugging stack.