-
Notifications
You must be signed in to change notification settings - Fork 72
Description
Description
I’m trying to use the autoreload feature described in here to enable a dynamic, interactive debugging experience.
Goal:
Allow users to modify code after hitting a breakpoint—before those lines have executed—and have those changes reflected in the debugger as if they were present from the start.
Based on the documentation, I believe autoreload should support this behavior.
Steps to Reproduce
- Enable autoreload in the VS Code Python debugger. This is my
launch.json
in.vscode
.
{
"version": "0.2.0",
"configurations": [
{
"name": "Moo: Current File",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"autoReload": {
"enable": true
}
}
]
}
- Start a debugging script in the VS Code editor debugger (via the Run and Debug panel), not the Debug Console with the following sequence:
if __name__=="__main__"
print('Moo') # Breakpoint here at the start
print('Baa') # Breakpoint here at the start
#print('Roar') # Uncomment these two lines when at the 'Baa' breakpoint, but before executing 'Baa'
#print('Woof') # Uncomment these two lines when at the 'Baa' breakpoint, but before executing 'Baa'
print('Quack') # Breakpoint here at the start
print('Meow') # Breakpoint here at the start
print('Done') # Breakpoint here at the start
Expected Behavior
The newly added lines should execute as if they were part of the original script when the debugger resumes.
Moo
Baa
Roar
Woof
Quack
Meow
Done
Actual Behavior
The output is
Moo
Baa
Quack
Meow
Done
The two added lines during debugging are ignored.
Environment
VS Code Version: 1.104.3
Python extension for VS Code: 2025.14.0
Python Debugger extension for VS Code:
2025.10.0
Python version: 3.12.10
OS: Windows_NT x64 10.0.26100
Question
Am I using autoreload incorrectly, or is this a bug in the debugger?