Finds and runs debugpy for VS Code "remote attach" command line debugging.
Project description
DEBUGPY-RUN
This utility facilitates debugging a Python command line program using Python extension in Visual Studio Code.
The Python
debugger in VS
Code is superb. However debugging a
command line program which takes arguments is a little awkward to
invoke. The official
instructions
require you to edit the command line arguments in your launch.json
configuration which is cumbersome to do when you want to change
arguments for each run, particularly because the arguments have to be
quoted within a JSON data
structure.
This question on
stackoverflow
describes the problem, but there is no adequate solution. This utility
provides a solution, follow the procedure to use
it below.
If you have the VS Code Python
extension
installed then the full
debugpy
debugger is already
bundled with it. You open a terminal window and run this utility to
invoke your program with arguments. The utility finds the path where
debugpy
is installed and then
runs it for program and arguments you specify, in listen mode. Connect
to it from within VS Code using the
Python "Remote Attach" debug configuration (using the default host and
port settings). You can just control+c
and then re-run the command
with changed arguments using your shell history and command line editing
facilities, for each debug run.
This utility was developed on Arch Linux but should work on all Linux systems where VS Code is installed with the Python extension. The latest version and documentation is available at https://github.com/bulletmark/debugpy-run.
Installation
Arch users can install debugpy-run from the AUR.
Python 3.6 or later is required. Note debugpy-run is on
PyPI so just ensure that
python3-pip
and python3-wheel
are installed then type the following
to install (or upgrade):
$ sudo pip3 install -U debugpy-run
Or, to install from this source repository:
$ git clone http://github.com/bulletmark/debugpy-run
$ cd debugpy-run
$ sudo pip3 install .
Procedure to Use
-
Open VS Code for the directory where your command line program is located.
-
Ensure you have added a Debugging Configuration in your
launch.json
. Specify "Remote Attach" and just accept the default arguments (i.e. host =localhost
, port =5678
). You only have to do this once. -
Open a terminal (either within VS Code, or external) and type:
debugpy-run my-prog args ..
Debugpy-run will start the
debugpy
debugger for your program, output a message, and then wait to be connected by VS Code. -
In VS Code, start debugging, e.g. set a breakpoint then start the Remote Attach debug session.
-
At any point you can
control+c
the terminal command and restart it with new command line arguments (e.g. using the convenience of your shell history and editing commands) and then restart the debug session in VS Code.
Usage
usage: debugpy-run [-h] [--listen | -C] [-p PORT] [-r]
[--log-to PATH | --log-to-stderr] [-m MODULE] [-c CODE]
[--pid PID] [-V]
[program] ...
Finds the "debugpy" program within your VSCode Python extension and then runs
it for "remote attach" debugging of the program/module you specify.
positional arguments:
program python program to execute and debug
args remaining arguments to debug
optional arguments:
-h, --help show this help message and exit
--listen listen on given port, default=True
-C, --connect connect to given port rather than listen
-p PORT, --port PORT [host:]port to use, default=5678
-r, --run-on-error re-run program/module even on error
--log-to PATH log to given path
--log-to-stderr log to stderr
-m MODULE, --module MODULE
python module to execute and debug
-c CODE, --code CODE python code to execute and debug
--pid PID python pid to attach and debug
-V, --version output debugpy path and version
License
Copyright (C) 2021 Mark Blakeney. This program is distributed under the terms of the GNU General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License at http://www.gnu.org/licenses/ for more details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for debugpy_run-1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1bb7d9f6c522a15aacc1d98eadb6359fc3ecc7ff3e5b31f5becb3d7b0d08883 |
|
MD5 | 8c00051fc31e021cffb0a9fb0c248022 |
|
BLAKE2b-256 | e3b2b784cdb62ea7a36e2efd8f7638a5ea5359e0319fcb7f661c3bcbdef7fe67 |