570 Public method reimplemented to handle the program about to execute a |
570 Public method reimplemented to handle the program about to execute a |
571 particular line. |
571 particular line. |
572 |
572 |
573 @param frame the frame object |
573 @param frame the frame object |
574 """ |
574 """ |
575 line = frame.f_lineno |
|
576 |
|
577 # We never stop on line 0. |
575 # We never stop on line 0. |
578 if line == 0: |
576 if frame.f_lineno == 0: |
579 return |
577 return |
580 |
578 |
581 # See if we are skipping at the start of a newly loaded program. |
579 # See if we are skipping at the start of a newly loaded program. |
|
580 # Then get the complete frame stack without eric or Python supplied |
|
581 # libraries |
582 if self._dbgClient.mainFrame is None: |
582 if self._dbgClient.mainFrame is None: |
583 fr = frame |
583 fr = frame |
584 while (fr is not None and |
584 while (fr is not None and |
585 fr.f_code != self._dbgClient.handleLine.__code__): |
585 fr.f_code != self._dbgClient.handleLine.__code__): |
|
586 if (fr.f_code.co_filename == '<string>' or |
|
587 os.path.dirname(fr.f_code.co_filename) == self.lib): |
|
588 break |
|
589 |
586 self._dbgClient.mainFrame = fr |
590 self._dbgClient.mainFrame = fr |
587 fr = fr.f_back |
591 fr = fr.f_back |
588 |
592 |
589 self.currentFrame = frame |
593 self.currentFrame = frame |
590 |
594 |