Debugger/DebugServer.py

branch
maintenance
changeset 6646
51eefa621de4
parent 6602
331ac8f99cf8
parent 6645
ad476851d7e0
child 6923
d062df8f1d9f
--- a/Debugger/DebugServer.py	Sat Dec 01 11:45:24 2018 +0100
+++ b/Debugger/DebugServer.py	Thu Jan 10 14:22:59 2019 +0100
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 
-# Copyright (c) 2007 - 2018 Detlev Offenbach <detlev@die-offenbachs.de>
+# Copyright (c) 2007 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
 #
 
 """
@@ -232,6 +232,7 @@
         
         self.lastClientType = ''
         self.__autoClearShell = False
+        self.__forProject = False
         
         self.clientClearBreak.connect(self.__clientClearBreakPoint)
         self.clientClearWatch.connect(self.__clientClearWatchPoint)
@@ -459,7 +460,7 @@
                 'DebugClient/Type', self.clientType)
         
     def startClient(self, unplanned=True, clType=None, forProject=False,
-                    runInConsole=False, venvName=""):
+                    runInConsole=False, venvName="", workingDir=None):
         """
         Public method to start a debug client.
         
@@ -474,6 +475,8 @@
         @type bool
         @keyparam venvName name of the virtual environment to be used
         @type str
+        @keyparam workingDir directory to start the debugger client in
+        @type str
         """
         self.running = False
         
@@ -498,6 +501,7 @@
                 self.clientProcess.deleteLater()
                 self.clientProcess = None
             
+            self.__forProject = forProject
             self.__createDebuggerInterface()
             if forProject:
                 project = e5App().getObject("Project")
@@ -505,17 +509,17 @@
                     self.clientProcess, isNetworked, clientInterpreter = \
                         self.debuggerInterface.startRemote(
                             self.serverPort(), runInConsole, venvName,
-                            self.__originalPathString)
+                            self.__originalPathString, workingDir=workingDir)
                 else:
                     self.clientProcess, isNetworked, clientInterpreter = \
                         self.debuggerInterface.startRemoteForProject(
                             self.serverPort(), runInConsole, venvName,
-                            self.__originalPathString)
+                            self.__originalPathString, workingDir=workingDir)
             else:
                 self.clientProcess, isNetworked, clientInterpreter = \
                     self.debuggerInterface.startRemote(
                         self.serverPort(), runInConsole, venvName,
-                        self.__originalPathString)
+                        self.__originalPathString, workingDir=workingDir)
             
             if self.clientProcess:
                 self.clientProcess.readyReadStandardError.connect(
@@ -1500,7 +1504,7 @@
         if Preferences.getDebugger("AutomaticReset") or (self.running and
                                                          not self.debugging):
             self.debugging = False
-            self.startClient(False)
+            self.startClient(False, forProject=self.__forProject)
         if self.passive:
             self.__createDebuggerInterface("None")
             self.signalClientOutput(self.tr('\nNot connected\n'))

eric ide

mercurial