-
Notifications
You must be signed in to change notification settings - Fork 293
How notebook run by line works
Rich Chiodo edited this page Jul 25, 2022
·
5 revisions
Notebook Run by line is very close to debugging a cell. The differences in the sequence diagram are highlighted below:
Differences are described below.
Instead of a DebugCellController
, a RunByLineController
is created. This class intercepts messages from the debugger differently than the DebugCellController
does. This intercepting is done in the willSendEvent override.
In a run by line situation, the IP indicator is only supposed to step over lines in the cell. Internally this is done by doing a step into over and over. If the step into falls into another cell (or another module), the RunByLineController
issues another step to continue until the IP indicator lands in the cell again.
That is happening in this sequence of events above:
- willSendEvent for stopped event
- willSendEvent says true, so
KernelDebugAdapter
does not send the stopped event to VS code - willSendEvent issues a 'stepin' request to the adapter
-
KernelDebugAdapter
issues a 'customRequest' to the debugger -
VS Code
turns that custom request into a message -
KernelDebugAdapter
sends the request to debugpy inside the kernel
- Contribution
- Source Code Organization
- Coding Standards
- Profiling
- Coding Guidelines
- Component Governance
- Writing tests
- Kernels
- Intellisense
- Debugging
- IPyWidgets
- Extensibility
- Module Dependencies
- Errors thrown
- Jupyter API
- Variable fetching
- Import / Export
- React Webviews: Variable Viewer, Data Viewer, and Plot Viewer
- FAQ
- Kernel Crashes
- Jupyter issues in the Python Interactive Window or Notebook Editor
- Finding the code that is causing high CPU load in production
- How to install extensions from VSIX when using Remote VS Code
- How to connect to a jupyter server for running code in vscode.dev
- Jupyter Kernels and the Jupyter Extension