DebugClients/Python/DebugClientBase.py

changeset 3021
801289962f4e
parent 2987
c99695c0f13a
child 3032
927a2f8b3669
equal deleted inserted replaced
3020:542e97d4ecb3 3021:801289962f4e
593 # set the system exception handling function to ensure, that 593 # set the system exception handling function to ensure, that
594 # we report on all unhandled exceptions 594 # we report on all unhandled exceptions
595 sys.excepthook = self.__unhandled_exception 595 sys.excepthook = self.__unhandled_exception
596 596
597 # generate a coverage object 597 # generate a coverage object
598 self.cover = coverage(auto_data=True, 598 self.cover = coverage(
599 auto_data=True,
599 data_file="%s.coverage" % os.path.splitext(sys.argv[0])[0]) 600 data_file="%s.coverage" % os.path.splitext(sys.argv[0])[0])
600 self.cover.use_cache(True) 601 self.cover.use_cache(True)
601 602
602 if int(erase): 603 if int(erase):
603 self.cover.erase() 604 self.cover.erase()
669 cond = None 670 cond = None
670 else: 671 else:
671 try: 672 try:
672 compile(cond, '<string>', 'eval') 673 compile(cond, '<string>', 'eval')
673 except SyntaxError: 674 except SyntaxError:
674 self.write('%s%s,%d\n' % \ 675 self.write(
675 (DebugProtocol.ResponseBPConditionError, fn, 676 '%s%s,%d\n' % \
676 line)) 677 (DebugProtocol.ResponseBPConditionError,
678 fn, line))
677 return 679 return
678 self.mainThread.set_break(fn, line, temporary, cond) 680 self.mainThread.set_break(fn, line, temporary, cond)
679 else: 681 else:
680 self.mainThread.clear_break(fn, line) 682 self.mainThread.clear_break(fn, line)
681 683
809 self.write(DebugProtocol.ResponseException + '\n') 811 self.write(DebugProtocol.ResponseException + '\n')
810 812
811 return 813 return
812 814
813 if cmd == DebugProtocol.RequestBanner: 815 if cmd == DebugProtocol.RequestBanner:
814 self.write('%s%s\n' % (DebugProtocol.ResponseBanner, 816 self.write(
815 unicode(("Python %s" % sys.version, socket.gethostname(), 817 '%s%s\n' % (
816 self.variant)))) 818 DebugProtocol.ResponseBanner,
819 unicode(("Python %s" % sys.version,
820 socket.gethostname(),
821 self.variant))))
817 return 822 return
818 823
819 if cmd == DebugProtocol.RequestCapabilities: 824 if cmd == DebugProtocol.RequestCapabilities:
820 self.write('%s%d, "Python"\n' % ( 825 self.write('%s%d, "Python"\n' % (
821 DebugProtocol.ResponseCapabilities, 826 DebugProtocol.ResponseCapabilities,
854 except AttributeError: 859 except AttributeError:
855 self.test = unittest.defaultTestLoader\ 860 self.test = unittest.defaultTestLoader\
856 .loadTestsFromModule(utModule) 861 .loadTestsFromModule(utModule)
857 except: 862 except:
858 exc_type, exc_value, exc_tb = sys.exc_info() 863 exc_type, exc_value, exc_tb = sys.exc_info()
859 self.write('%s%s\n' % (DebugProtocol.ResponseUTPrepared, 864 self.write(
860 unicode((0, str(exc_type), str(exc_value))))) 865 '%s%s\n' % (
866 DebugProtocol.ResponseUTPrepared,
867 unicode((0, str(exc_type), str(exc_value)))))
861 self.__exceptionRaised() 868 self.__exceptionRaised()
862 return 869 return
863 870
864 # generate a coverage object 871 # generate a coverage object
865 if int(cov): 872 if int(cov):
866 from coverage import coverage 873 from coverage import coverage
867 self.cover = coverage(auto_data=True, 874 self.cover = coverage(
875 auto_data=True,
868 data_file="%s.coverage" % os.path.splitext(covname)[0]) 876 data_file="%s.coverage" % os.path.splitext(covname)[0])
869 self.cover.use_cache(True) 877 self.cover.use_cache(True)
870 if int(erase): 878 if int(erase):
871 self.cover.erase() 879 self.cover.erase()
872 else: 880 else:
873 self.cover = None 881 self.cover = None
874 882
875 self.write('%s%s\n' % (DebugProtocol.ResponseUTPrepared, 883 self.write(
876 unicode((self.test.countTestCases(), "", "")))) 884 '%s%s\n' % (
885 DebugProtocol.ResponseUTPrepared,
886 unicode((self.test.countTestCases(), "", ""))))
877 return 887 return
878 888
879 if cmd == DebugProtocol.RequestUTRun: 889 if cmd == DebugProtocol.RequestUTRun:
880 from DCTestResult import DCTestResult 890 from DCTestResult import DCTestResult
881 self.testResult = DCTestResult(self) 891 self.testResult = DCTestResult(self)
1630 if value.isValid(): 1640 if value.isValid():
1631 varlist.append(("row", "int", "%s" % value.row())) 1641 varlist.append(("row", "int", "%s" % value.row()))
1632 varlist.append(("column", "int", "%s" % value.column())) 1642 varlist.append(("column", "int", "%s" % value.column()))
1633 varlist.append( 1643 varlist.append(
1634 ("internalId", "int", "%s" % value.internalId())) 1644 ("internalId", "int", "%s" % value.internalId()))
1635 varlist.append(("internalPointer", "void *", "%s" % \ 1645 varlist.append(
1636 value.internalPointer())) 1646 ("internalPointer", "void *", "%s" % \
1647 value.internalPointer()))
1637 elif qttype == 'QRegExp': 1648 elif qttype == 'QRegExp':
1638 varlist.append(("pattern", "str", "%s" % value.pattern())) 1649 varlist.append(("pattern", "str", "%s" % value.pattern()))
1639 1650
1640 # GUI stuff 1651 # GUI stuff
1641 elif qttype == 'QAction': 1652 elif qttype == 'QAction':
1827 1838
1828 self.write("%s%s||%s\n" % (DebugProtocol.ResponseCompletion, 1839 self.write("%s%s||%s\n" % (DebugProtocol.ResponseCompletion,
1829 unicode(completions), text)) 1840 unicode(completions), text))
1830 1841
1831 def startDebugger(self, filename=None, host=None, port=None, 1842 def startDebugger(self, filename=None, host=None, port=None,
1832 enableTrace=1, exceptions=1, tracePython=0, redirect=1): 1843 enableTrace=1, exceptions=1, tracePython=0, redirect=1):
1833 """ 1844 """
1834 Public method used to start the remote debugger. 1845 Public method used to start the remote debugger.
1835 1846
1836 @param filename the program to be debugged (string) 1847 @param filename the program to be debugged (string)
1837 @param host hostname of the debug server (string) 1848 @param host hostname of the debug server (string)
1883 # now start debugging 1894 # now start debugging
1884 if enableTrace: 1895 if enableTrace:
1885 self.mainThread.set_trace() 1896 self.mainThread.set_trace()
1886 1897
1887 def startProgInDebugger(self, progargs, wd='', host=None, 1898 def startProgInDebugger(self, progargs, wd='', host=None,
1888 port=None, exceptions=1, tracePython=0, redirect=1): 1899 port=None, exceptions=1, tracePython=0,
1900 redirect=1):
1889 """ 1901 """
1890 Public method used to start the remote debugger. 1902 Public method used to start the remote debugger.
1891 1903
1892 @param progargs commandline for the program to be debugged 1904 @param progargs commandline for the program to be debugged
1893 (list of strings) 1905 (list of strings)

eric ide

mercurial