The debugger interface is open (it's part of the CLR itself), and so is the debug symbol file format.
However the debugger interface is low-level, making writing a debugger engine from scratch fairly complex. The complaint is that Microsoft uses a restrictive license for their higher-level wrapper around the low-level API.
But it should be possible to write independent .NET debuggers -- I believe Jetbrains has done so, Rider can debug C# code without the problematic Microsoft component.