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