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"])