194 self.inRawMode = False |
194 self.inRawMode = False |
195 self.mainProcStr = None # used for the passive mode |
195 self.mainProcStr = None # used for the passive mode |
196 self.passive = False # used to indicate the passive mode |
196 self.passive = False # used to indicate the passive mode |
197 self.running = None |
197 self.running = None |
198 self.test = None |
198 self.test = None |
199 self.tracePython = False |
|
200 self.debugging = False |
199 self.debugging = False |
201 |
200 |
202 self.fork_auto = False |
201 self.fork_auto = False |
203 self.fork_child = False |
202 self.fork_child = False |
204 |
203 |
205 self.readstream = None |
204 self.readstream = None |
206 self.writestream = None |
205 self.writestream = None |
207 self.errorstream = None |
206 self.errorstream = None |
208 self.pollingDisabled = False |
207 self.pollingDisabled = False |
209 |
208 |
210 self.callTraceEnabled = False |
209 self.callTraceEnabled = None |
211 self.__newCallTraceEnabled = False |
210 self.__newCallTraceEnabled = None |
212 |
211 |
213 self.skipdirs = sys.path[:] |
212 self.skipdirs = sys.path[:] |
214 |
213 |
215 self.variant = 'You should not see this' |
214 self.variant = 'You should not see this' |
216 |
215 |
272 @param args arguments to pass to target |
271 @param args arguments to pass to target |
273 @param kwargs keyword arguments to pass to target |
272 @param kwargs keyword arguments to pass to target |
274 @param mainThread True, if we are attaching to the already |
273 @param mainThread True, if we are attaching to the already |
275 started mainthread of the app |
274 started mainthread of the app |
276 """ |
275 """ |
277 if self.debugging: |
276 pass |
278 sys.setprofile(self.profile) |
|
279 |
277 |
280 def __dumpThreadList(self): |
278 def __dumpThreadList(self): |
281 """ |
279 """ |
282 Private method to send the list of threads. |
280 Private method to send the list of threads. |
283 """ |
281 """ |
465 self.pendingResponse = DebugProtocol.ResponseOK |
463 self.pendingResponse = DebugProtocol.ResponseOK |
466 return |
464 return |
467 |
465 |
468 if cmd == DebugProtocol.RequestCallTrace: |
466 if cmd == DebugProtocol.RequestCallTrace: |
469 if arg.strip().lower() == "on": |
467 if arg.strip().lower() == "on": |
470 callTraceEnabled = True |
468 callTraceEnabled = self.profile |
471 else: |
469 else: |
472 callTraceEnabled = False |
470 callTraceEnabled = None |
473 if self.debugging: |
471 if self.debugging: |
474 self.callTraceEnabled = callTraceEnabled |
472 sys.setprofile(callTraceEnabled) |
475 else: |
473 else: |
|
474 # remember for later |
476 self.__newCallTraceEnabled = callTraceEnabled |
475 self.__newCallTraceEnabled = callTraceEnabled |
477 # remember for later |
476 |
478 return |
477 return |
479 |
478 |
480 if cmd == DebugProtocol.RequestEnv: |
479 if cmd == DebugProtocol.RequestEnv: |
481 env = eval(arg.replace("u'", "'")) |
480 env = eval(arg.replace("u'", "'")) |
482 for key, value in env.items(): |
481 for key, value in env.items(): |
529 # as a normal str. |
528 # as a normal str. |
530 self.debugMod.__dict__['__file__'] = self.running |
529 self.debugMod.__dict__['__file__'] = self.running |
531 sys.modules['__main__'] = self.debugMod |
530 sys.modules['__main__'] = self.debugMod |
532 code = self.__compileFileSource(self.running) |
531 code = self.__compileFileSource(self.running) |
533 if code: |
532 if code: |
534 self.callTraceEnabled = self.__newCallTraceEnabled |
533 sys.setprofile(self.__newCallTraceEnabled) |
535 res = self.mainThread.run(code, self.debugMod.__dict__) |
534 res = self.mainThread.run(code, self.debugMod.__dict__) |
536 self.progTerminated(res) |
535 self.progTerminated(res) |
537 return |
536 return |
538 |
537 |
539 if cmd == DebugProtocol.RequestRun: |
538 if cmd == DebugProtocol.RequestRun: |