Need way to indicate debugger support
It seems like we probably want a way to indicate whether or not a kernel supports debugging. This would allow disabling debug features from the UI for kernels which don't support it, rather than requiring an attempt to debug and getting a failed result back.
This could just be a new field returned in the kernel_info request.
Another way to do this, and contrary to issue #3, is to start kernels with debugging enabled / disabled. This would involve having the connection_file provide to start the kernel have a field which indicates that debugging should be enabled. This may be the necessary path forward because otherwise there will be a lot of complexities around enabling debugging after the fact.
For a Python kernel for example this would require either require one of: a) Only allowing debugging on the main execution thread b) Requiring trace functions to be established on all threads ahead of time, impacting performance pretty significanlty c) Require a pretty low-level attach to process method. This is possible on at least some operating systems, but it's a tricky and difficult procedure.
Launching with debugging enabled is a pretty normal process and is more likely to be supported across a broad range of languages, so it may make more sense to require this vs. dynamically enabling it.