src/eric7/Debugger/DebuggerInterfacePython.py

branch
eric7
changeset 9407
2ff21ac23957
parent 9389
7b2344009d7a
child 9413
80c06d472826
diff -r e6db5614b97e -r 2ff21ac23957 src/eric7/Debugger/DebuggerInterfacePython.py
--- a/src/eric7/Debugger/DebuggerInterfacePython.py	Mon Oct 17 07:44:55 2022 +0200
+++ b/src/eric7/Debugger/DebuggerInterfacePython.py	Mon Oct 17 08:21:27 2022 +0200
@@ -205,18 +205,7 @@
 
         self.__inShutdown = False
 
-        debugClientType = Preferences.getDebugger("DebugClientType3")
-        if debugClientType == "standard":
-            debugClient = os.path.join(
-                getConfig("ericDir"), "DebugClients", "Python", "DebugClient.py"
-            )
-        else:
-            debugClient = Preferences.getDebugger("DebugClient3")
-            if debugClient == "":
-                # use the 'standard' debug client if no custom one was configured
-                debugClient = os.path.join(
-                    getConfig("ericDir"), "DebugClients", "Python", "DebugClient.py"
-                )
+        debugClient = self.__determineDebugClient()
 
         redirect = (
             str(configOverride["redirect"])
@@ -352,6 +341,28 @@
 
         return process, self.__isNetworked, interpreter
 
+    def __determineDebugClient(self):
+        """
+        Private method to determine the debug client to be started.
+        
+        @return path of the debug client
+        @rtype str
+        """
+        debugClientType = Preferences.getDebugger("DebugClientType3")
+        if debugClientType == "standard":
+            debugClient = os.path.join(
+                getConfig("ericDir"), "DebugClients", "Python", "DebugClient.py"
+            )
+        else:
+            debugClient = Preferences.getDebugger("DebugClient3")
+            if debugClient == "":
+                # use the 'standard' debug client if no custom one was configured
+                debugClient = os.path.join(
+                    getConfig("ericDir"), "DebugClients", "Python", "DebugClient.py"
+                )
+
+        return debugClient
+
     def startRemoteForProject(
         self,
         port,
@@ -390,6 +401,8 @@
 
         # start debugger with project specific settings
         debugClient = project.getDebugProperty("DEBUGCLIENT")
+        if not bool(debugClient) or not os.path.exists(debugClient):
+            debugClient = self.__determineDebugClient()
 
         redirect = (
             str(configOverride["redirect"])

eric ide

mercurial