debugger
debugger copied to clipboard
How do we choose when to launch with debugging vs not...
Debugging for most languages comes with a significant performance impact. We'll need some UI gesture to indicate whether a notebook should be opened with or without debugging. Presumably the default should be with debugging
At the moment, Jupyter kernel specs don't allow to pass optional parameters to the command used to run the kernel executable.
This would be useful for
- enabling a debug mode for a kernel, as you mention here.
- setting up host/credentials for e.g. a sql kernel.
Kernels could advertise available options as part of the kernel spec, and relevant defaults if any.
(In short, this would be useful beyond debugging.)
Yep, initially I was thinking there'd be a debug start/stop msg, but realized that wouldn't work as well. In issue #5 I started thinking this should come via the connection file, which being JSON could have arbitrary fields added to it in a pretty safe way vs new command line arguments. Absolutely agree the kernel spec should advertise the feature support.
My thoughts on this issue is more about the JupyterLab UI and how users choose whether or not they're going to launch a notebook with debugging or not. There could also be an "enable debugging" option for languages that support it as well.
The point about additional options is interesting too though... I'm not sure if this extension point exists yet but given that the debugger will be an extension, presumably there needs to be some way for extensions to extend the connection file if that's how this ends up being implemented (and that's not already there).
My initial idea was for an sql kernel, where you would have to provide a host / credentials.
For kernels where all options have a meaningful default, it would be an opt-in to modify it upon the opening of the notebook. This could include whether debugging is included.
I'd generally love a nice way to set certain properties as arguments to a kernel, especially for being able to set spark options in advance, so I think this generally has applications across the ecosystem.