eric6/Debugger/DebugServer.py

branch
multi_processing
changeset 7411
6d8dcb3551b3
parent 7409
1413bfe73d41
child 7412
0a995393d2ba
diff -r 401791e6f50f -r 6d8dcb3551b3 eric6/Debugger/DebugServer.py
--- a/eric6/Debugger/DebugServer.py	Wed Feb 12 20:04:31 2020 +0100
+++ b/eric6/Debugger/DebugServer.py	Thu Feb 13 19:27:10 2020 +0100
@@ -262,6 +262,8 @@
         
         self.__maxVariableSize = Preferences.getDebugger("MaxVariableSize")
         
+        self.__multiprocessNoDebugList = []
+        
         self.__registerDebuggerInterfaces()
     
     def getHostAddress(self, localhost):
@@ -927,7 +929,7 @@
                    tracePython=False, autoContinue=True, forProject=False,
                    runInConsole=False, autoFork=False, forkChild=False,
                    clientType="", enableCallTrace=False,
-                   enableMultiprocess=False):
+                   enableMultiprocess=False, multiprocessNoDebug=""):
         """
         Public method to load a new program to debug.
         
@@ -967,8 +969,12 @@
         @param enableMultiprocess flag indicating to perform multiprocess
             debugging
         @type bool
+        @param multiprocessNoDebug space separated list of programs not to be
+            debugged
+        @type str
         """
         self.__autoClearShell = autoClearShell
+        self.__multiprocessNoDebugList = multiprocessNoDebug.split()
         
         if clientType not in self.getSupportedLanguages():
             # a not supported client language was requested
@@ -1004,6 +1010,7 @@
         self.running = True
         self.__restoreBreakpoints()
         self.__restoreWatchpoints()
+        self.__restoreNoDebugList()
     
     def remoteRun(self, venvName, fn, argv, wd, env, autoClearShell=True,
                   forProject=False, runInConsole=False, autoFork=False,
@@ -2197,3 +2204,16 @@
         """
         self.__restoreBreakpoints(debuggerId)
         self.__restoreWatchpoints(debuggerId)
+        self.__restoreNoDebugList(debuggerId)
+    
+    def __restoreNoDebugList(self, debuggerId=""):
+        """
+        Private method to restore the watch expressions after a restart.
+        
+        @param debuggerId ID of the debugger backend to send to. If this is
+            empty, they will be broadcast to all connected backends.
+        @type str
+        """
+        if self.debugging:
+            self.debuggerInterface.remoteNoDebugList(
+                debuggerId, self.__multiprocessNoDebugList)

eric ide

mercurial