Use this to launch your script file. Launch script file without waiting for debugger to attach.
-m ptvsd --port 5678 myfile.py
If you want the debugger to attach before running your code use --wait
flag.
-m ptvsd --port 5678 --wait myfile.py
Use this to launch your module. Launch script file without waiting for debugger to attach.
-m ptvsd --port 5678 -m mymodule
If you want the debugger to attach before running your code use --wait
flag.
-m ptvsd --port 5678 --wait -m mymodule
Attach to a process running python code.
-m ptvsd --host 0.0.0.0 --port 5678 --pid 12345
In your script import ptvsd and call enable_attach
to enable the process to attach to the debugger. The default port is 5678. You can configure this while calling enable_attach
.
import ptvsd
ptvsd.enable_attach()
# your code
Use the wait_for_attach()
function to block execution until debugger is attached.
import ptvsd
ptvsd.enable_attach()
# script execution will stop here till debugger is attached
ptvsd.wait_for_attach()
# your code
In python >= 3.7, ptvsd
supports the breakpoint()
function. Use break_into_debugger()
function for similar behavior and compatibility with older versions of python (2.7 and >= 3.4). These functions will block only if the debugger is attached.
import ptvsd
ptvsd.enable_attach()
while True:
# your code
breakpoint() # ptvsd.break_into_debugger()
# your code
{
"debugOptions": [
"RedirectOutput", // Whether to redirect stdout and stderr (see pydevd_comm.CMD_REDIRECT_OUTPUT)
"WaitOnNormalExit", // Wait for user input after user code exits normally
"WaitOnAbnormalExit", // Wait for user input after user code exits with error
"Django", // Enables Django Template debugging
"Jinja", // Enables Jinja (Flask) Template debugging
"FixFilePathCase", // See FIX_FILE_PATH_CASE in wrapper.py
"DebugStdLib", // Whether to enable debugging of standard library functions
"StopOnEntry", // Whether to stop at first line of user code
"ShowReturnValue", // Show return values of functions
]
}
{
"debugOptions": [
"RedirectOutput", // Whether to redirect stdout and stderr (see pydevd_comm.CMD_REDIRECT_OUTPUT)
"Django", // Enables Django Template debugging
"Jinja", // Enables Jinja (Flask) Template debugging
"FixFilePathCase", // See FIX_FILE_PATH_CASE in wrapper.py
"DebugStdLib", // Whether to enable debugging of standard library functions
"WindowsClient", // Whether client OS is Windows
"UnixClient", // Whether client OS is Unix
"ShowReturnValue", // Show return values of functions
],
"pathMappings": [
{
"localRoot": "C:\\Project\\src", // Local root (where source and debugger running)
"remoteRoot": "/home/smith/proj" // Remote root (where remote code is running)
},
// Add more path mappings
]
}