388 if frame is None: |
388 if frame is None: |
389 frame = sys._getframe().f_back # Skip set_trace method |
389 frame = sys._getframe().f_back # Skip set_trace method |
390 |
390 |
391 if sys.version_info[0] == 2: |
391 if sys.version_info[0] == 2: |
392 stopOnHandleLine = self._dbgClient.handleLine.func_code |
392 stopOnHandleLine = self._dbgClient.handleLine.func_code |
393 bootstrap = '__bootstrap' |
|
394 else: |
393 else: |
395 stopOnHandleLine = self._dbgClient.handleLine.__code__ |
394 stopOnHandleLine = self._dbgClient.handleLine.__code__ |
396 bootstrap = 'bootstrap' |
|
397 |
395 |
398 frame.f_trace = self.trace_dispatch |
396 frame.f_trace = self.trace_dispatch |
399 while frame is not None: |
397 while frame.f_back is not None: |
400 # stop at erics debugger frame or the threading bootstrap |
398 # stop at erics debugger frame or a threading bootstrap |
401 if (frame.f_back.f_code == stopOnHandleLine or |
399 if (frame.f_back.f_code == stopOnHandleLine): |
402 frame.f_back.f_code.co_name == bootstrap): |
|
403 frame.f_trace = self.trace_dispatch |
400 frame.f_trace = self.trace_dispatch |
404 self.botframe = frame |
401 self.botframe = frame |
405 break |
402 break |
406 |
403 |
407 frame = frame.f_back |
404 frame = frame.f_back |