I’ve done a ton of research, but I have yet to find a way to get all the functionalities I’m looking for within a single window. Every method I have found is missing one or more of these functions:
- breakpoints with line-by-line functionality
- active debug console to continue inputting commands and viewing/manipulating variables
- variable viewer
- Not freezing when calling other functions
Regarding the freezing on external commands: This is mostly occurring when calling functions I wrote in separate files. However, these calls work when in a script I am running, or when calling them from an external terminal. The freezing seems to only happen when calling them from a VSCode terminal or from within a jupyter notebook. I’ve also had it occasionally happen with library functions such as matplotlib.pyplot.plot().
Here’s what I’ve found:
Interactive window: This has the functioning interactive console and variable viewer, but doesn’t have break points and will often freeze when calling additional functions. I find it to be the best option so far, but the inability to call other functions and use breakpoints is a major annoyance.
Press f5 (Start a debugging session): This only has breakpoints. The variable viewer quickly becomes worthless if you have variables any more complex than a=6 with the values you want to watch becoming hidden in its multitude of close-on-update subfolders. It also closes the workspace/debug session once the final line your script finishes. So you can’t continue to interact and inspect/manipulate your variables afterwards. The debug console will also often freeze will calling external functions. The data viewer solution presented here is also no longer functional.
launch.json: I’ve searched for a way to use this to make the debugger session not close the workspace when the script finishes but haven’t had any luck. This also doesn’t resolve the variable viewer and freezing issues
Jupyter: Lacks a terminal, and freezes when calling external functions even from within the notebook.