From a719d80eff8254cca57669eeec474b8685bbff3c Mon Sep 17 00:00:00 2001 From: Pesc0 Date: Fri, 17 Nov 2023 01:07:54 +0100 Subject: [PATCH] Upgrade debugger to debugpy --- requirements.txt | 2 +- src/Gui/RemoteDebugger.py | 15 +++++++++++---- src/Gui/RemoteDebugger.ui | 10 ---------- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/requirements.txt b/requirements.txt index 42bf9c4acd..42135681ea 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ opencamlib==2023.1.11 packaging==23.0 Pivy==0.6.8 ply==3.11 -ptvsd==4.3.2 +debugpy==1.6.7 pyNastran==1.3.4 pyshp==2.3.1 PySide2==5.15.2.1 diff --git a/src/Gui/RemoteDebugger.py b/src/Gui/RemoteDebugger.py index 28353d96b5..637d757074 100644 --- a/src/Gui/RemoteDebugger.py +++ b/src/Gui/RemoteDebugger.py @@ -25,6 +25,7 @@ import FreeCAD as App import FreeCADGui as Gui from PySide import QtGui +from freecad.utils import get_python_exe class RemoteDebugger(): def __init__(self, parent=None): @@ -46,11 +47,17 @@ class RemoteDebugger(): elif index == 1: # VS code address = self.dialog.lineEditAddress.text() port = self.dialog.spinBoxPort.value() - redirect = self.dialog.checkRedirectOutput.isChecked() - import ptvsd - ptvsd.enable_attach(address=(address, port), redirect_output=redirect) - ptvsd.wait_for_attach() + import debugpy + + # get_python_exe is needed because debugpy needs a python interpreter to work. + # It does not have to be FC embedded interpreter. + # By default it attempts to use Freecad's PID mistaking it for python. + # https://github.com/microsoft/debugpy/issues/262 + debugpy.configure(python=get_python_exe()) + debugpy.listen((address, port)) + debugpy.wait_for_client() + except Exception as e: QtGui.QMessageBox.warning(self.dialog, "Failed to attach", str(e)) diff --git a/src/Gui/RemoteDebugger.ui b/src/Gui/RemoteDebugger.ui index 382eb04393..f40327375a 100644 --- a/src/Gui/RemoteDebugger.ui +++ b/src/Gui/RemoteDebugger.ui @@ -89,16 +89,6 @@ - - - - Redirect output - - - true - - -