DebugClients/Python3/DebugClientBase.py

changeset 107
918a6be6f051
parent 96
9624a110667d
child 126
7902c9178ee0
equal deleted inserted replaced
106:94c7385cf685 107:918a6be6f051
452 self.fncache = {} 452 self.fncache = {}
453 self.dircache = [] 453 self.dircache = []
454 sys.argv = [] 454 sys.argv = []
455 wd, fn, args, tracePython = arg.split('|') 455 wd, fn, args, tracePython = arg.split('|')
456 self.__setCoding(fn) 456 self.__setCoding(fn)
457 try:
458 sys.setappdefaultencoding(self.__coding)
459 except AttributeError:
460 pass
461 sys.argv.append(fn) 457 sys.argv.append(fn)
462 sys.argv.extend(eval(args.replace("u'", "'"))) 458 sys.argv.extend(eval(args.replace("u'", "'")))
463 sys.path = self.__getSysPath(os.path.dirname(sys.argv[0])) 459 sys.path = self.__getSysPath(os.path.dirname(sys.argv[0]))
464 if wd == '': 460 if wd == '':
465 os.chdir(sys.path[1]) 461 os.chdir(sys.path[1])
498 494
499 if cmd == RequestRun: 495 if cmd == RequestRun:
500 sys.argv = [] 496 sys.argv = []
501 wd, fn, args = arg.split('|') 497 wd, fn, args = arg.split('|')
502 self.__setCoding(fn) 498 self.__setCoding(fn)
503 try:
504 sys.setappdefaultencoding(self.__coding)
505 except AttributeError:
506 pass
507 sys.argv.append(fn) 499 sys.argv.append(fn)
508 sys.argv.extend(eval(args.replace("u'", "'"))) 500 sys.argv.extend(eval(args.replace("u'", "'")))
509 sys.path = self.__getSysPath(os.path.dirname(sys.argv[0])) 501 sys.path = self.__getSysPath(os.path.dirname(sys.argv[0]))
510 if wd == '': 502 if wd == '':
511 os.chdir(sys.path[1]) 503 os.chdir(sys.path[1])
536 sys.setprofile(None) 528 sys.setprofile(None)
537 import PyProfile 529 import PyProfile
538 sys.argv = [] 530 sys.argv = []
539 wd, fn, args, erase = arg.split('|') 531 wd, fn, args, erase = arg.split('|')
540 self.__setCoding(fn) 532 self.__setCoding(fn)
541 try:
542 sys.setappdefaultencoding(self.__coding)
543 except AttributeError:
544 pass
545 sys.argv.append(fn) 533 sys.argv.append(fn)
546 sys.argv.extend(eval(args.replace("u'", "'"))) 534 sys.argv.extend(eval(args.replace("u'", "'")))
547 sys.path = self.__getSysPath(os.path.dirname(sys.argv[0])) 535 sys.path = self.__getSysPath(os.path.dirname(sys.argv[0]))
548 if wd == '': 536 if wd == '':
549 os.chdir(sys.path[1]) 537 os.chdir(sys.path[1])
575 if cmd == RequestCoverage: 563 if cmd == RequestCoverage:
576 from coverage import coverage 564 from coverage import coverage
577 sys.argv = [] 565 sys.argv = []
578 wd, fn, args, erase = arg.split('@@') 566 wd, fn, args, erase = arg.split('@@')
579 self.__setCoding(fn) 567 self.__setCoding(fn)
580 try:
581 sys.setappdefaultencoding(self.__coding)
582 except AttributeError:
583 pass
584 sys.argv.append(fn) 568 sys.argv.append(fn)
585 sys.argv.extend(eval(args.replace("u'", "'"))) 569 sys.argv.extend(eval(args.replace("u'", "'")))
586 sys.path = self.__getSysPath(os.path.dirname(sys.argv[0])) 570 sys.path = self.__getSysPath(os.path.dirname(sys.argv[0]))
587 if wd == '': 571 if wd == '':
588 os.chdir(sys.path[1]) 572 os.chdir(sys.path[1])
1182 self.running = None 1166 self.running = None
1183 self.write('{0}{1:d}\n'.format(ResponseExit, status)) 1167 self.write('{0}{1:d}\n'.format(ResponseExit, status))
1184 1168
1185 # reset coding 1169 # reset coding
1186 self.__coding = self.defaultCoding 1170 self.__coding = self.defaultCoding
1187 try:
1188 sys.setappdefaultencoding(self.defaultCoding)
1189 except AttributeError:
1190 pass
1191 1171
1192 def __dumpVariables(self, frmnr, scope, filter): 1172 def __dumpVariables(self, frmnr, scope, filter):
1193 """ 1173 """
1194 Private method to return the variables of a frame to the debug server. 1174 Private method to return the variables of a frame to the debug server.
1195 1175
1724 self.running = os.path.abspath(sys.argv[0]) 1704 self.running = os.path.abspath(sys.argv[0])
1725 except IndexError: 1705 except IndexError:
1726 self.running = None 1706 self.running = None
1727 if self.running: 1707 if self.running:
1728 self.__setCoding(self.running) 1708 self.__setCoding(self.running)
1729 try:
1730 sys.setappdefaultencoding(self.defaultCoding)
1731 except AttributeError:
1732 pass
1733 self.passive = True 1709 self.passive = True
1734 self.write("{0}{1}|{2:d}\n".format(PassiveStartup, self.running, exceptions)) 1710 self.write("{0}{1}|{2:d}\n".format(PassiveStartup, self.running, exceptions))
1735 self.__interact() 1711 self.__interact()
1736 1712
1737 # setup the debugger variables 1713 # setup the debugger variables
1783 os.chdir(sys.path[1]) 1759 os.chdir(sys.path[1])
1784 else: 1760 else:
1785 os.chdir(wd) 1761 os.chdir(wd)
1786 self.running = sys.argv[0] 1762 self.running = sys.argv[0]
1787 self.__setCoding(self.running) 1763 self.__setCoding(self.running)
1788 try:
1789 sys.setappdefaultencoding(self.__coding)
1790 except AttributeError:
1791 pass
1792 self.mainFrame = None 1764 self.mainFrame = None
1793 self.inRawMode = False 1765 self.inRawMode = False
1794 self.debugging = True 1766 self.debugging = True
1795 1767
1796 self.passive = True 1768 self.passive = True
1891 if not args: 1863 if not args:
1892 print("No program given. Aborting!") 1864 print("No program given. Aborting!")
1893 else: 1865 else:
1894 if not self.noencoding: 1866 if not self.noencoding:
1895 self.__coding = self.defaultCoding 1867 self.__coding = self.defaultCoding
1896 try:
1897 sys.setappdefaultencoding(self.defaultCoding)
1898 except AttributeError:
1899 pass
1900 self.startProgInDebugger(args, wd, host, port, 1868 self.startProgInDebugger(args, wd, host, port,
1901 exceptions = exceptions, 1869 exceptions = exceptions,
1902 tracePython = tracePython, 1870 tracePython = tracePython,
1903 redirect = redirect) 1871 redirect = redirect)
1904 else: 1872 else:
1929 if not '' in sys.path: 1897 if not '' in sys.path:
1930 sys.path.insert(0, '') 1898 sys.path.insert(0, '')
1931 if port >= 0: 1899 if port >= 0:
1932 if not self.noencoding: 1900 if not self.noencoding:
1933 self.__coding = self.defaultCoding 1901 self.__coding = self.defaultCoding
1934 try:
1935 sys.setappdefaultencoding(self.defaultCoding)
1936 except AttributeError:
1937 pass
1938 self.connectDebugger(port, remoteAddress, redirect) 1902 self.connectDebugger(port, remoteAddress, redirect)
1939 self.__interact() 1903 self.__interact()
1940 else: 1904 else:
1941 print("No network port given. Aborting...") 1905 print("No network port given. Aborting...")
1942 1906

eric ide

mercurial