FreeCAD
1import debugpy
2from multiprocessing.connection import Listener
3from freecad.utils import get_python_exe
4
5# get_python_exe is needed because debugpy needs a python interpreter to work.
6# It does not have to be FC embedded interpreter.
7# By default it attempts to use Freecad's PID mistaking it for python.
8# https://github.com/microsoft/debugpy/issues/262
9debugpy.configure(python=get_python_exe())
10debugpy.listen(('localhost', 5678))
11
12# Turns out you cannot probe debugpy to see if it is up:
13# https://github.com/microsoft/debugpy/issues/974
14# Open another port that the script WaitForDebugpy can probe to see if
15# debugpy is running
16listener = Listener(('localhost', 6000), backlog=10)
17
18debugpy.wait_for_client()
19